From 0a8625b1aa2569c9d5268f5d49b35aff5ab808f4 Mon Sep 17 00:00:00 2001 From: nero120 Date: Sat, 18 Jan 2020 05:06:27 +0000 Subject: [PATCH] Added support for using a relative path (resolves #36 and #37). Updated license to GNUv3. Updated dependencies. --- README.md | 1 + config/settings.default.json | 5 +- dist/core/server.js | 6 +- dist/core/server.js.map | 2 +- dist/docs/index.js | 2 +- dist/docs/index.js.LICENSE | 2 +- dist/docs/index.js.map | 2 +- dist/routers/bookmarks.router.js | 3 +- dist/routers/bookmarks.router.js.map | 2 +- dist/routers/docs.router.js | 3 +- dist/routers/docs.router.js.map | 2 +- dist/routers/info.router.js | 3 +- dist/routers/info.router.js.map | 2 +- package-lock.json | 239 ++++++++++++++++++--------- package.json | 28 ++-- src/core/server.ts | 6 +- src/routers/bookmarks.router.ts | 3 +- src/routers/docs.router.ts | 3 +- src/routers/info.router.ts | 3 +- test/integration/bookmarks.test.ts | 46 +++--- test/integration/docs.test.ts | 2 +- test/integration/info.test.ts | 2 +- test/integration/server.test.ts | 16 +- 23 files changed, 238 insertions(+), 145 deletions(-) diff --git a/README.md b/README.md index d449598..a9affa1 100644 --- a/README.md +++ b/README.md @@ -132,6 +132,7 @@ Config Setting | Description | Default Value `server.https.enabled` | If enabled, the service is started using HTTPS. | `false` `server.https.keyPath` | Path to the SSL certificate's private key. Required when HTTPS is enabled. | (Empty string, no path set) `server.port` | Port to use for Node.js server for accepting incoming connections. | `8080` +`server.relativePath` | Relative path from the host where the service will be located. Should always begin (and end) with `/`. | `/` `status.allowNewSyncs` | Determines whether users will be allowed to create new syncs. Note: if this setting is set to false, users who have already synced to this service and have a sync ID will still able to get and update their syncs. | `true` `status.message` | This message will be displayed in the service status panel of the client app when using this xBrowserSync service. Ideally the message should be 130 characters or less. Supports [markdown](https://guides.github.com/features/mastering-markdown/) formatting. | (Empty string, no message set) `status.online` | If set to false no clients will be able to connect to this service. | `true` diff --git a/config/settings.default.json b/config/settings.default.json index 8eaaa9a..8609c2d 100644 --- a/config/settings.default.json +++ b/config/settings.default.json @@ -6,7 +6,7 @@ "connTimeout": 30000, "host": "127.0.0.1", "name": "xbrowsersync", - "useSRV" : false, + "useSRV": false, "username": "", "password": "", "port": 27017 @@ -34,7 +34,8 @@ "enabled": false, "keyPath": "" }, - "port": 8080 + "port": 8080, + "relativePath": "/" }, "status": { "allowNewSyncs": true, diff --git a/dist/core/server.js b/dist/core/server.js index 3e6aac7..fc6b079 100644 --- a/dist/core/server.js +++ b/dist/core/server.js @@ -123,7 +123,9 @@ class Server { })); }); this.server.on('listening', conn => { - this.log(LogLevel.Info, `Service started on ${config_1.default.get().server.host}:${config_1.default.get().server.port}`); + const protocol = config_1.default.get().server.https.enabled ? 'https' : 'http'; + const url = `${protocol}://${config_1.default.get().server.host}:${config_1.default.get().server.port}${config_1.default.get().server.relativePath}`; + this.log(LogLevel.Info, `Service started at ${url}`); resolve(); }); }); @@ -307,7 +309,7 @@ class Server { // Configures api routing prepareRoutes() { const router = express.Router(); - this.app.use('/', router); + this.app.use(config_1.default.get().server.relativePath, router); // Configure docs routing const docsRouter = new docs_router_1.default(this.app); // Configure bookmarks routing diff --git a/dist/core/server.js.map b/dist/core/server.js.map index 3416965..fee4671 100644 --- a/dist/core/server.js.map +++ b/dist/core/server.js.map @@ -1 +1 @@ -{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/docs/index.js b/dist/docs/index.js index bb1c977..86d2118 100644 --- a/dist/docs/index.js +++ b/dist/docs/index.js @@ -1,3 +1,3 @@ /*! For license information please see index.js.LICENSE */ -!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=8)}([function(e,t){const r=/[&<>"']/,n=/[&<>"']/g,o=/[<>"']|&(?!#?\w+;)/,i=/[<>"']|&(?!#?\w+;)/g,a={"&":"&","<":"<",">":">",'"':""","'":"'"},s=e=>a[e];const u=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function l(e){return e.replace(u,(e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):"")}const c=/(^|[^\[])\^/g;const f=/[^\w:]/g,p=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;const h={},d=/^[^:]+:\/*[^/]*$/,y=/^([^:]+:)[\s\S]*$/,g=/^([^:]+:\/*[^/]*)[\s\S]*$/;function m(e,t){h[" "+e]||(d.test(e)?h[" "+e]=e+"/":h[" "+e]=b(e,"/",!0));const r=-1===(e=h[" "+e]).indexOf(":");return"//"===t.substring(0,2)?r?t:e.replace(y,"$1")+t:"/"===t.charAt(0)?r?t:e.replace(g,"$1")+t:e+t}function b(e,t,r){const n=e.length;if(0===n)return"";let o=0;for(;o(n=(n=n.source||n).replace(c,"$1"),e=e.replace(t,n),r),getRegex:()=>new RegExp(e,t)};return r},cleanUrl:function(e,t,r){if(e){let e;try{e=decodeURIComponent(l(r)).replace(f,"").toLowerCase()}catch(e){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!p.test(r)&&(r=m(t,r));try{r=encodeURI(r).replace(/%25/g,"%")}catch(e){return null}return r},resolveUrl:m,noopTest:{exec:function(){}},merge:function(e){let t,r,n=1;for(;n{let n=!1,o=t;for(;--o>=0&&"\\"===r[o];)n=!n;return n?"|":" |"}).split(/ \|/);let n=0;if(r.length>t)r.splice(t);else for(;r.length'+(r?e:i(e,!0))+"\n":"
"+(r?e:i(e,!0))+"
"}blockquote(e){return"
\n"+e+"
\n"}html(e){return e}heading(e,t,r,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"}hr(){return this.options.xhtml?"
\n":"
\n"}list(e,t,r){const n=t?"ol":"ul";return"<"+n+(t&&1!==r?' start="'+r+'"':"")+">\n"+e+"\n"}listitem(e){return"
  • "+e+"
  • \n"}checkbox(e){return" "}paragraph(e){return"

    "+e+"

    \n"}table(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"}tablerow(e){return"\n"+e+"\n"}tablecell(e,t){const r=t.header?"th":"td";return(t.align?"<"+r+' align="'+t.align+'">':"<"+r+">")+e+"\n"}strong(e){return""+e+""}em(e){return""+e+""}codespan(e){return""+e+""}br(){return this.options.xhtml?"
    ":"
    "}del(e){return""+e+""}link(e,t,r){if(null===(e=o(this.options.sanitize,this.options.baseUrl,e)))return r;let n='",n}image(e,t,r){if(null===(e=o(this.options.sanitize,this.options.baseUrl,e)))return r;let n=''+r+'":">",n}text(e){return e}}},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){const{noopTest:n,edit:o,merge:i}=r(0),a={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:n,table:n,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};a.def=o(a.def).replace("label",a._label).replace("title",a._title).getRegex(),a.bullet=/(?:[*+-]|\d{1,9}\.)/,a.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,a.item=o(a.item,"gm").replace(/bull/g,a.bullet).getRegex(),a.list=o(a.list).replace(/bull/g,a.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+a.def.source+")").getRegex(),a._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",a._comment=//,a.html=o(a.html,"i").replace("comment",a._comment).replace("tag",a._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),a.paragraph=o(a._paragraph).replace("hr",a.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",a._tag).getRegex(),a.blockquote=o(a.blockquote).replace("paragraph",a.paragraph).getRegex(),a.normal=i({},a),a.gfm=i({},a.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),a.pedantic=i({},a.normal,{html:o("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",a._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:n,paragraph:o(a.normal._paragraph).replace("hr",a.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",a.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const s={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:n,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:n,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[^_{|}~"};s.em=o(s.em).replace(/punctuation/g,s._punctuation).getRegex(),s._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,s._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,s._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,s.autolink=o(s.autolink).replace("scheme",s._scheme).replace("email",s._email).getRegex(),s._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,s.tag=o(s.tag).replace("comment",a._comment).replace("attribute",s._attribute).getRegex(),s._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,s._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,s._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,s.link=o(s.link).replace("label",s._label).replace("href",s._href).replace("title",s._title).getRegex(),s.reflink=o(s.reflink).replace("label",s._label).getRegex(),s.normal=i({},s),s.pedantic=i({},s.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:o(/^!?\[(label)\]\((.*?)\)/).replace("label",s._label).getRegex(),reflink:o(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",s._label).getRegex()}),s.gfm=i({},s.normal,{escape:o(s.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){const e=t;do{this.seen[e]++,t=e+"-"+this.seen[e]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t}}},function(e,t,r){const n=r(2),{defaults:o}=r(1),{inline:i}=r(4),{findClosingBracket:a,escape:s}=r(0);e.exports=class e{constructor(e,t){if(this.options=t||o,this.links=e,this.rules=i.normal,this.options.renderer=this.options.renderer||new n,this.renderer=this.options.renderer,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.pedantic?this.rules=i.pedantic:this.options.gfm&&(this.options.breaks?this.rules=i.breaks:this.rules=i.gfm)}static get rules(){return i}static output(t,r,n){return new e(r,n).output(t)}output(t){let r,n,o,i,u,l,c="";for(;t;)if(u=this.rules.escape.exec(t))t=t.substring(u[0].length),c+=s(u[1]);else if(u=this.rules.tag.exec(t))!this.inLink&&/^/i.test(u[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(u[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(u[0])&&(this.inRawBlock=!1),t=t.substring(u[0].length),c+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(u[0]):s(u[0]):u[0];else if(u=this.rules.link.exec(t)){const n=a(u[2],"()");if(n>-1){const e=(0===u[0].indexOf("!")?5:4)+u[1].length+n;u[2]=u[2].substring(0,n),u[0]=u[0].substring(0,e).trim(),u[3]=""}t=t.substring(u[0].length),this.inLink=!0,o=u[2],this.options.pedantic?(r=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o),r?(o=r[1],i=r[3]):i=""):i=u[3]?u[3].slice(1,-1):"",o=o.trim().replace(/^<([\s\S]*)>$/,"$1"),c+=this.outputLink(u,{href:e.escapes(o),title:e.escapes(i)}),this.inLink=!1}else if((u=this.rules.reflink.exec(t))||(u=this.rules.nolink.exec(t))){if(t=t.substring(u[0].length),r=(u[2]||u[1]).replace(/\s+/g," "),r=this.links[r.toLowerCase()],!r||!r.href){c+=u[0].charAt(0),t=u[0].substring(1)+t;continue}this.inLink=!0,c+=this.outputLink(u,r),this.inLink=!1}else if(u=this.rules.strong.exec(t))t=t.substring(u[0].length),c+=this.renderer.strong(this.output(u[4]||u[3]||u[2]||u[1]));else if(u=this.rules.em.exec(t))t=t.substring(u[0].length),c+=this.renderer.em(this.output(u[6]||u[5]||u[4]||u[3]||u[2]||u[1]));else if(u=this.rules.code.exec(t))t=t.substring(u[0].length),c+=this.renderer.codespan(s(u[2].trim(),!0));else if(u=this.rules.br.exec(t))t=t.substring(u[0].length),c+=this.renderer.br();else if(u=this.rules.del.exec(t))t=t.substring(u[0].length),c+=this.renderer.del(this.output(u[1]));else if(u=this.rules.autolink.exec(t))t=t.substring(u[0].length),"@"===u[2]?(n=s(this.mangle(u[1])),o="mailto:"+n):(n=s(u[1]),o=n),c+=this.renderer.link(o,null,n);else if(this.inLink||!(u=this.rules.url.exec(t))){if(u=this.rules.text.exec(t))t=t.substring(u[0].length),this.inRawBlock?c+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(u[0]):s(u[0]):u[0]):c+=this.renderer.text(s(this.smartypants(u[0])));else if(t)throw new Error("Infinite loop on byte: "+t.charCodeAt(0))}else{if("@"===u[2])n=s(u[0]),o="mailto:"+n;else{do{l=u[0],u[0]=this.rules._backpedal.exec(u[0])[0]}while(l!==u[0]);n=s(u[0]),o="www."===u[1]?"http://"+n:n}t=t.substring(u[0].length),c+=this.renderer.link(o,null,n)}return c}static escapes(t){return t?t.replace(e.rules._escapes,"$1"):t}outputLink(e,t){const r=t.href,n=t.title?s(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(r,n,this.output(e[1])):this.renderer.image(r,n,s(e[1]))}smartypants(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e}mangle(e){if(!this.options.mangle)return e;const t=e.length;let r,n="",o=0;for(;o.5&&(r="x"+r.toString(16)),n+="&#"+r+";";return n}}},function(e,t){e.exports=class{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}text(e){return e}link(e,t,r){return""+r}image(e,t,r){return""+r}br(){return""}}},function(e,t,r){r(9),e.exports=r(20)},function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),r(10);const i=r(21),a=r(11);r(12);const s=r(14),u=r(17);r(18),r(19);class l{init(){return o(this,void 0,void 0,(function*(){this.enableMenu(),this.checkStatus();new u('a[href*="#"]',{updateURL:!1})}))}checkStatus(){return o(this,void 0,void 0,(function*(){const e=document.querySelector(".serviceinfo"),t=document.querySelector("#version"),r=document.querySelector("#currentstatus"),n=document.querySelector("#servermessage");try{const o=yield fetch(`${location.pathname}info`);if(!o.ok)throw new Error(o.statusText);e.classList.remove("offline");const i=yield o.json();switch(i&&(t.textContent=i.version,i.message&&(n.innerHTML=a.sanitize(s(i.message)))),i.status){case 1:r.textContent="Online",r.className="text-success";break;case 3:r.textContent="Not accepting new syncs",r.className="text-warning";break;default:case 2:r.textContent="Offline",r.className="text-danger"}}catch(e){r.textContent="Offline",r.className="text-danger",console.error(e)}}))}enableMenu(){const e=document.querySelector(".nav-menu-button"),t=document.querySelector("nav"),r=()=>{t.classList.contains("open")?(t.classList.remove("open"),e.classList.remove("hide"),document.body.classList.remove("noscroll")):(t.classList.add("open"),e.classList.add("hide"),document.body.classList.add("noscroll"))};e.addEventListener("click",e=>{r()});const n=t.querySelectorAll("a");Array.from(n).forEach(e=>{e.addEventListener("click",e=>{r()})})}}n([i.autobind],l.prototype,"init",null);const c=new l;document.addEventListener("DOMContentLoaded",c.init)},function(e,t,r){},function(e,t,r){e.exports=function(){"use strict";var e=Object.freeze||function(e){return e},t=e(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),r=e(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","audio","canvas","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","video","view","vkern"]),n=e(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),o=e(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),i=e(["#text"]),a=Object.freeze||function(e){return e},s=a(["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","coords","crossorigin","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","integrity","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","minlength","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns"]),u=a(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),l=a(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),c=a(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),f=Object.hasOwnProperty,p=Object.setPrototypeOf,h=("undefined"!=typeof Reflect&&Reflect).apply;function d(e,t){p&&p(e,null);for(var r=t.length;r--;){var n=t[r];if("string"==typeof n){var o=n.toLowerCase();o!==n&&(Object.isFrozen(t)||(t[r]=o),n=o)}e[n]=!0}return e}function y(e){var t={},r=void 0;for(r in e)h(f,e,[r])&&(t[r]=e[r]);return t}h||(h=function(e,t,r){return e.apply(t,r)});var g=Object.seal||function(e){return e},m=g(/\{\{[\s\S]*|[\s\S]*\}\}/gm),b=g(/<%[\s\S]*|[\s\S]*%>/gm),v=g(/^data-[\-\w.\u00B7-\uFFFF]/),w=g(/^aria-[\-\w]+$/),O=g(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),S=g(/^(?:\w+script|data):/i),x=g(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g),T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function j(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:k(),f=function(t){return e(t)};if(f.version="2.0.7",f.removed=[],!a||!a.document||9!==a.document.nodeType)return f.isSupported=!1,f;var p=a.document,h=!1,g=!1,I=a.document,C=a.DocumentFragment,M=a.HTMLTemplateElement,R=a.Node,N=a.NodeFilter,L=a.NamedNodeMap,D=void 0===L?a.NamedNodeMap||a.MozNamedAttrMap:L,z=a.Text,F=a.Comment,q=a.DOMParser,$=a.TrustedTypes;if("function"==typeof M){var H=I.createElement("template");H.content&&H.content.ownerDocument&&(I=H.content.ownerDocument)}var U=P($,p),B=U?U.createHTML(""):"",G=I,W=G.implementation,Z=G.createNodeIterator,V=G.getElementsByTagName,J=G.createDocumentFragment,K=p.importNode,X={};f.isSupported=W&&void 0!==W.createHTMLDocument&&9!==I.documentMode;var Y=m,Q=b,ee=v,te=w,re=S,ne=x,oe=O,ie=null,ae=d({},[].concat(j(t),j(r),j(n),j(o),j(i))),se=null,ue=d({},[].concat(j(s),j(u),j(l),j(c))),le=null,ce=null,fe=!0,pe=!0,he=!1,de=!1,ye=!1,ge=!1,me=!1,be=!1,ve=!1,we=!1,Oe=!1,Se=!1,xe=!0,Te=!0,je=!1,Ee={},Ae=d({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","plaintext","script","style","svg","template","thead","title","video","xmp"]),_e=d({},["audio","video","img","source","image"]),ke=null,Pe=d({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),Ie=null,Ce=I.createElement("form"),Me=function(e){Ie&&Ie===e||(e&&"object"===(void 0===e?"undefined":T(e))||(e={}),ie="ALLOWED_TAGS"in e?d({},e.ALLOWED_TAGS):ae,se="ALLOWED_ATTR"in e?d({},e.ALLOWED_ATTR):ue,ke="ADD_URI_SAFE_ATTR"in e?d(y(Pe),e.ADD_URI_SAFE_ATTR):Pe,le="FORBID_TAGS"in e?d({},e.FORBID_TAGS):{},ce="FORBID_ATTR"in e?d({},e.FORBID_ATTR):{},Ee="USE_PROFILES"in e&&e.USE_PROFILES,fe=!1!==e.ALLOW_ARIA_ATTR,pe=!1!==e.ALLOW_DATA_ATTR,he=e.ALLOW_UNKNOWN_PROTOCOLS||!1,de=e.SAFE_FOR_JQUERY||!1,ye=e.SAFE_FOR_TEMPLATES||!1,ge=e.WHOLE_DOCUMENT||!1,ve=e.RETURN_DOM||!1,we=e.RETURN_DOM_FRAGMENT||!1,Oe=e.RETURN_DOM_IMPORT||!1,Se=e.RETURN_TRUSTED_TYPE||!1,be=e.FORCE_BODY||!1,xe=!1!==e.SANITIZE_DOM,Te=!1!==e.KEEP_CONTENT,je=e.IN_PLACE||!1,oe=e.ALLOWED_URI_REGEXP||oe,ye&&(pe=!1),we&&(ve=!0),Ee&&(ie=d({},[].concat(j(i))),se=[],!0===Ee.html&&(d(ie,t),d(se,s)),!0===Ee.svg&&(d(ie,r),d(se,u),d(se,c)),!0===Ee.svgFilters&&(d(ie,n),d(se,u),d(se,c)),!0===Ee.mathMl&&(d(ie,o),d(se,l),d(se,c))),e.ADD_TAGS&&(ie===ae&&(ie=y(ie)),d(ie,e.ADD_TAGS)),e.ADD_ATTR&&(se===ue&&(se=y(se)),d(se,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&d(ke,e.ADD_URI_SAFE_ATTR),Te&&(ie["#text"]=!0),ge&&d(ie,["html","head","body"]),ie.table&&(d(ie,["tbody"]),delete le.tbody),_&&_(e),Ie=e)},Re=function(e){f.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=B}},Ne=function(e,t){try{f.removed.push({attribute:t.getAttributeNode(e),from:t})}catch(e){f.removed.push({attribute:null,from:t})}t.removeAttribute(e)},Le=function(e){var t=void 0,r=void 0;if(be)e=""+e;else{var n=e.match(/^[\s]+/);(r=n&&n[0])&&(e=e.slice(r.length))}if(h)try{t=(new q).parseFromString(e,"text/html")}catch(e){}if(g&&d(le,["title"]),!t||!t.documentElement){var o=(t=W.createHTMLDocument("")).body;o.parentNode.removeChild(o.parentNode.firstElementChild),o.outerHTML=U?U.createHTML(e):e}return e&&r&&t.body.insertBefore(I.createTextNode(r),t.body.childNodes[0]||null),V.call(t,ge?"html":"body")[0]};f.isSupported&&(function(){try{Le('

    ').querySelector("svg img")&&(h=!0)}catch(e){}}(),function(){try{var e=Le("</title><img>");/<\/title/.test(e.querySelector("title").innerHTML)&&(g=!0)}catch(e){}}());var De=function(e){return Z.call(e.ownerDocument||e,e,N.SHOW_ELEMENT|N.SHOW_COMMENT|N.SHOW_TEXT,(function(){return N.FILTER_ACCEPT}),!1)},ze=function(e){return!(e instanceof z||e instanceof F||"string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof D&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI)},Fe=function(e){return"object"===(void 0===R?"undefined":T(R))?e instanceof R:e&&"object"===(void 0===e?"undefined":T(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},qe=function(e,t,r){X[e]&&X[e].forEach((function(e){e.call(f,t,r,Ie)}))},$e=function(e){var t=void 0;if(qe("beforeSanitizeElements",e,null),ze(e))return Re(e),!0;var r=e.nodeName.toLowerCase();if(qe("uponSanitizeElement",e,{tagName:r,allowedTags:ie}),("svg"===r||"math"===r)&&0!==e.querySelectorAll("p, br").length)return Re(e),!0;if(!ie[r]||le[r]){if(Te&&!Ae[r]&&"function"==typeof e.insertAdjacentHTML)try{var n=e.innerHTML;e.insertAdjacentHTML("AfterEnd",U?U.createHTML(n):n)}catch(e){}return Re(e),!0}return"noscript"===r&&/<\/noscript/i.test(e.innerHTML)?(Re(e),!0):"noembed"===r&&/<\/noembed/i.test(e.innerHTML)?(Re(e),!0):(!de||e.firstElementChild||e.content&&e.content.firstElementChild||!/</g.test(e.textContent)||(f.removed.push({element:e.cloneNode()}),e.innerHTML?e.innerHTML=e.innerHTML.replace(/</g,"<"):e.innerHTML=e.textContent.replace(/</g,"<")),ye&&3===e.nodeType&&(t=(t=(t=e.textContent).replace(Y," ")).replace(Q," "),e.textContent!==t&&(f.removed.push({element:e.cloneNode()}),e.textContent=t)),qe("afterSanitizeElements",e,null),!1)},He=function(e,t,r){if(xe&&("id"===t||"name"===t)&&(r in I||r in Ce))return!1;if(pe&&ee.test(t));else if(fe&&te.test(t));else{if(!se[t]||ce[t])return!1;if(ke[t]);else if(oe.test(r.replace(ne,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==r.indexOf("data:")||!_e[e])if(he&&!re.test(r.replace(ne,"")));else if(r)return!1}return!0},Ue=function(e){var t=void 0,r=void 0,n=void 0,o=void 0,i=void 0;qe("beforeSanitizeAttributes",e,null);var a=e.attributes;if(a){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:se};for(i=a.length;i--;){var u=t=a[i],l=u.name,c=u.namespaceURI;if(r=t.value.trim(),n=l.toLowerCase(),s.attrName=n,s.attrValue=r,s.keepAttr=!0,qe("uponSanitizeAttribute",e,s),r=s.attrValue,"name"===n&&"IMG"===e.nodeName&&a.id)o=a.id,a=E(A,a,[]),Ne("id",e),Ne(l,e),a.indexOf(o)>i&&e.setAttribute("id",o.value);else{if("INPUT"===e.nodeName&&"type"===n&&"file"===r&&s.keepAttr&&(se[n]||!ce[n]))continue;"id"===l&&e.setAttribute(l,""),Ne(l,e)}if(s.keepAttr)if(/svg|math/i.test(e.namespaceURI)&&new RegExp("</("+Object.keys(Ae).join("|")+")","i").test(r))Ne(l,e);else{ye&&(r=(r=r.replace(Y," ")).replace(Q," "));var p=e.nodeName.toLowerCase();if(He(p,n,r))try{c?e.setAttributeNS(c,l,r):e.setAttribute(l,r),f.removed.pop()}catch(e){}}}qe("afterSanitizeAttributes",e,null)}},Be=function e(t){var r=void 0,n=De(t);for(qe("beforeSanitizeShadowDOM",t,null);r=n.nextNode();)qe("uponSanitizeShadowNode",r,null),$e(r)||(r.content instanceof C&&e(r.content),Ue(r));qe("afterSanitizeShadowDOM",t,null)};return f.sanitize=function(e,t){var r=void 0,n=void 0,o=void 0,i=void 0,s=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!Fe(e)){if("function"!=typeof e.toString)throw new TypeError("toString is not a function");if("string"!=typeof(e=e.toString()))throw new TypeError("dirty is not a string, aborting")}if(!f.isSupported){if("object"===T(a.toStaticHTML)||"function"==typeof a.toStaticHTML){if("string"==typeof e)return a.toStaticHTML(e);if(Fe(e))return a.toStaticHTML(e.outerHTML)}return e}if(me||Me(t),f.removed=[],je);else if(e instanceof R)1===(n=(r=Le("\x3c!--\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===n.nodeName?r=n:"HTML"===n.nodeName?r=n:r.appendChild(n);else{if(!ve&&!ye&&!ge&&Se&&-1===e.indexOf("<"))return U?U.createHTML(e):e;if(!(r=Le(e)))return ve?null:B}r&&be&&Re(r.firstChild);for(var u=De(je?e:r);o=u.nextNode();)3===o.nodeType&&o===i||$e(o)||(o.content instanceof C&&Be(o.content),Ue(o),i=o);if(i=null,je)return e;if(ve){if(we)for(s=J.call(r.ownerDocument);r.firstChild;)s.appendChild(r.firstChild);else s=r;return Oe&&(s=K.call(p,s,!0)),s}var l=ge?r.outerHTML:r.innerHTML;return ye&&(l=(l=l.replace(Y," ")).replace(Q," ")),U&&Se?U.createHTML(l):l},f.setConfig=function(e){Me(e),me=!0},f.clearConfig=function(){Ie=null,me=!1},f.isValidAttribute=function(e,t,r){Ie||Me({});var n=e.toLowerCase(),o=t.toLowerCase();return He(n,o,r)},f.addHook=function(e,t){"function"==typeof t&&(X[e]=X[e]||[],X[e].push(t))},f.removeHook=function(e){X[e]&&X[e].pop()},f.removeHooks=function(e){X[e]&&(X[e]=[])},f.removeAllHooks=function(){X={}},f}()}()},function(e,t,r){(function(n,o){var i,a;void 0===(a="function"==typeof(i=function(){"use strict";var e,t=Function.call.bind(Function.apply),r=Function.call.bind(Function.call),i=Array.isArray,a=Object.keys,s=function(e){return function(){return!t(e,this,arguments)}},u=function(e){try{return e(),!1}catch(e){return!0}},l=function(e){try{return e()}catch(e){return!1}},c=s(u),f=function(){return!u((function(){return Object.defineProperty({},"x",{get:function(){}})}))},p=!!Object.defineProperty&&f(),h="foo"===function(){}.name,d=Function.call.bind(Array.prototype.forEach),y=Function.call.bind(Array.prototype.reduce),g=Function.call.bind(Array.prototype.filter),m=Function.call.bind(Array.prototype.some),b=function(e,t,r,n){!n&&t in e||(p?Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:!0,value:r}):e[t]=r)},v=function(e,t,r){d(a(t),(function(n){var o=t[n];b(e,n,o,!!r)}))},w=Function.call.bind(Object.prototype.toString),O=function(e){return"function"==typeof e},S={getter:function(e,t,r){if(!p)throw new TypeError("getters require true ES5 support");Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get:r})},proxy:function(e,t,r){if(!p)throw new TypeError("getters require true ES5 support");var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,{configurable:n.configurable,enumerable:n.enumerable,get:function(){return e[t]},set:function(r){e[t]=r}})},redefine:function(e,t,r){if(p){var n=Object.getOwnPropertyDescriptor(e,t);n.value=r,Object.defineProperty(e,t,n)}else e[t]=r},defineByDescriptor:function(e,t,r){p?Object.defineProperty(e,t,r):"value"in r&&(e[t]=r.value)},preserveToString:function(e,t){t&&O(t.toString)&&b(e,"toString",t.toString.bind(t),!0)}},x=Object.create||function(e,t){var r=function(){};r.prototype=e;var n=new r;return void 0!==t&&a(t).forEach((function(e){S.defineByDescriptor(n,e,t[e])})),n},T=function(e,t){return!!Object.setPrototypeOf&&l((function(){var r=function t(r){var n=new e(r);return Object.setPrototypeOf(n,t.prototype),n};return Object.setPrototypeOf(r,e),r.prototype=x(e.prototype,{constructor:{value:r}}),t(r)}))},j=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n)return n;throw new Error("unable to locate global object")},E=j(),A=E.isFinite,_=Function.call.bind(String.prototype.indexOf),k=Function.apply.bind(Array.prototype.indexOf),P=Function.call.bind(Array.prototype.concat),I=Function.call.bind(String.prototype.slice),C=Function.call.bind(Array.prototype.push),M=Function.apply.bind(Array.prototype.push),R=Function.call.bind(Array.prototype.shift),N=Math.max,L=Math.min,D=Math.floor,z=Math.abs,F=Math.exp,q=Math.log,$=Math.sqrt,H=Function.call.bind(Object.prototype.hasOwnProperty),U=function(){},B=E.Map,G=B&&B.prototype.delete,W=B&&B.prototype.get,Z=B&&B.prototype.has,V=B&&B.prototype.set,J=E.Symbol||{},K=J.species||"@@species",X=Number.isNaN||function(e){return e!=e},Y=Number.isFinite||function(e){return"number"==typeof e&&A(e)},Q=O(Math.sign)?Math.sign:function(e){var t=Number(e);return 0===t?t:X(t)?t:t<0?-1:1},ee=function(e){var t=Number(e);return t<-1||X(t)?NaN:0===t||t===1/0?t:-1===t?-1/0:1+t-1==0?t:t*(q(1+t)/(1+t-1))},te=function(e){return"[object Arguments]"===w(e)},re=function(e){return null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==w(e)&&"[object Function]"===w(e.callee)},ne=te(arguments)?te:re,oe={primitive:function(e){return null===e||"function"!=typeof e&&"object"!=typeof e},string:function(e){return"[object String]"===w(e)},regex:function(e){return"[object RegExp]"===w(e)},symbol:function(e){return"function"==typeof E.Symbol&&"symbol"==typeof e}},ie=function(e,t,r){var n=e[t];b(e,t,r,!0),S.preserveToString(e[t],n)},ae="function"==typeof J&&"function"==typeof J.for&&oe.symbol(J()),se=oe.symbol(J.iterator)?J.iterator:"_es6-shim iterator_";E.Set&&"function"==typeof(new E.Set)["@@iterator"]&&(se="@@iterator"),E.Reflect||b(E,"Reflect",{},!0);var ue,le=E.Reflect,ce=String,fe="undefined"!=typeof document&&document?document.all:null,pe=null==fe?function(e){return null==e}:function(e){return null==e&&e!==fe},he={Call:function(e,r){var n=arguments.length>2?arguments[2]:[];if(!he.IsCallable(e))throw new TypeError(e+" is not a function");return t(e,r,n)},RequireObjectCoercible:function(e,t){if(pe(e))throw new TypeError(t||"Cannot call method on "+e);return e},TypeIsObject:function(e){return null!=e&&!0!==e&&!1!==e&&("function"==typeof e||"object"==typeof e||e===fe)},ToObject:function(e,t){return Object(he.RequireObjectCoercible(e,t))},IsCallable:O,IsConstructor:function(e){return he.IsCallable(e)},ToInt32:function(e){return he.ToNumber(e)>>0},ToUint32:function(e){return he.ToNumber(e)>>>0},ToNumber:function(e){if("[object Symbol]"===w(e))throw new TypeError("Cannot convert a Symbol value to a number");return+e},ToInteger:function(e){var t=he.ToNumber(e);return X(t)?0:0!==t&&Y(t)?(t>0?1:-1)*D(z(t)):t},ToLength:function(e){var t=he.ToInteger(e);return t<=0?0:t>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:t},SameValue:function(e,t){return e===t?0!==e||1/e==1/t:X(e)&&X(t)},SameValueZero:function(e,t){return e===t||X(e)&&X(t)},IsIterable:function(e){return he.TypeIsObject(e)&&(void 0!==e[se]||ne(e))},GetIterator:function(t){if(ne(t))return new e(t,"value");var r=he.GetMethod(t,se);if(!he.IsCallable(r))throw new TypeError("value is not an iterable");var n=he.Call(r,t);if(!he.TypeIsObject(n))throw new TypeError("bad iterator");return n},GetMethod:function(e,t){var r=he.ToObject(e)[t];if(!pe(r)){if(!he.IsCallable(r))throw new TypeError("Method not callable: "+t);return r}},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,t){var r=he.GetMethod(e,"return");if(void 0!==r){var n,o;try{n=he.Call(r,e)}catch(e){o=e}if(!t){if(o)throw o;if(!he.TypeIsObject(n))throw new TypeError("Iterator's return method returned a non-object.")}}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!he.TypeIsObject(t))throw new TypeError("bad iterator");return t},IteratorStep:function(e){var t=he.IteratorNext(e);return!he.IteratorComplete(t)&&t},Construct:function(e,t,r,n){var o=void 0===r?e:r;if(!n&&le.construct)return le.construct(e,t,o);var i=o.prototype;he.TypeIsObject(i)||(i=Object.prototype);var a=x(i),s=he.Call(e,a,t);return he.TypeIsObject(s)?s:a},SpeciesConstructor:function(e,t){var r=e.constructor;if(void 0===r)return t;if(!he.TypeIsObject(r))throw new TypeError("Bad constructor");var n=r[K];if(pe(n))return t;if(!he.IsConstructor(n))throw new TypeError("Bad @@species");return n},CreateHTML:function(e,t,r,n){var o=he.ToString(e),i="<"+t;return""!==r&&(i+=" "+r+'="'+he.ToString(n).replace(/"/g,""")+'"'),i+">"+o+"</"+t+">"},IsRegExp:function(e){if(!he.TypeIsObject(e))return!1;var t=e[J.match];return void 0!==t?!!t:oe.regex(e)},ToString:function(e){return ce(e)}};if(p&&ae){var de=function(e){if(oe.symbol(J[e]))return J[e];var t=J.for("Symbol."+e);return Object.defineProperty(J,e,{configurable:!1,enumerable:!1,writable:!1,value:t}),t};if(!oe.symbol(J.search)){var ye=de("search"),ge=String.prototype.search;b(RegExp.prototype,ye,(function(e){return he.Call(ge,e,[this])}));var me=function(e){var t=he.RequireObjectCoercible(this);if(!pe(e)){var r=he.GetMethod(e,ye);if(void 0!==r)return he.Call(r,e,[t])}return he.Call(ge,t,[he.ToString(e)])};ie(String.prototype,"search",me)}if(!oe.symbol(J.replace)){var be=de("replace"),ve=String.prototype.replace;b(RegExp.prototype,be,(function(e,t){return he.Call(ve,e,[this,t])}));var we=function(e,t){var r=he.RequireObjectCoercible(this);if(!pe(e)){var n=he.GetMethod(e,be);if(void 0!==n)return he.Call(n,e,[r,t])}return he.Call(ve,r,[he.ToString(e),t])};ie(String.prototype,"replace",we)}if(!oe.symbol(J.split)){var Oe=de("split"),Se=String.prototype.split;b(RegExp.prototype,Oe,(function(e,t){return he.Call(Se,e,[this,t])}));var xe=function(e,t){var r=he.RequireObjectCoercible(this);if(!pe(e)){var n=he.GetMethod(e,Oe);if(void 0!==n)return he.Call(n,e,[r,t])}return he.Call(Se,r,[he.ToString(e),t])};ie(String.prototype,"split",xe)}var Te=oe.symbol(J.match),je=Te&&((ue={})[J.match]=function(){return 42},42!=="a".match(ue));if(!Te||je){var Ee=de("match"),Ae=String.prototype.match;b(RegExp.prototype,Ee,(function(e){return he.Call(Ae,e,[this])}));var _e=function(e){var t=he.RequireObjectCoercible(this);if(!pe(e)){var r=he.GetMethod(e,Ee);if(void 0!==r)return he.Call(r,e,[t])}return he.Call(Ae,t,[he.ToString(e)])};ie(String.prototype,"match",_e)}}var ke=function(e,t,r){S.preserveToString(t,e),Object.setPrototypeOf&&Object.setPrototypeOf(e,t),p?d(Object.getOwnPropertyNames(e),(function(n){n in U||r[n]||S.proxy(e,n,t)})):d(Object.keys(e),(function(n){n in U||r[n]||(t[n]=e[n])})),t.prototype=e.prototype,S.redefine(e.prototype,"constructor",t)},Pe=function(){return this},Ie=function(e){p&&!H(e,K)&&S.getter(e,K,Pe)},Ce=function(e,t){var r=t||function(){return this};b(e,se,r),!e[se]&&oe.symbol(se)&&(e[se]=r)},Me=function(e,t,r){p?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:r}):e[t]=r},Re=function(e,t,r){if(Me(e,t,r),!he.SameValue(e[t],r))throw new TypeError("property is nonconfigurable")},Ne=function(e,t,r,n){if(!he.TypeIsObject(e))throw new TypeError("Constructor requires `new`: "+t.name);var o=t.prototype;he.TypeIsObject(o)||(o=r);var i=x(o);for(var a in n)if(H(n,a)){var s=n[a];b(i,a,s,!0)}return i};if(String.fromCodePoint&&1!==String.fromCodePoint.length){var Le=String.fromCodePoint;ie(String,"fromCodePoint",(function(e){return he.Call(Le,this,arguments)}))}var De={fromCodePoint:function(e){for(var t,r=[],n=0,o=arguments.length;n<o;n++){if(t=Number(arguments[n]),!he.SameValue(t,he.ToInteger(t))||t<0||t>1114111)throw new RangeError("Invalid code point "+t);t<65536?C(r,String.fromCharCode(t)):(t-=65536,C(r,String.fromCharCode(55296+(t>>10))),C(r,String.fromCharCode(t%1024+56320)))}return r.join("")},raw:function(e){var t=he.ToObject(e,"bad callSite"),r=he.ToObject(t.raw,"bad raw value"),n=r.length,o=he.ToLength(n);if(o<=0)return"";for(var i,a,s,u,l=[],c=0;c<o&&(i=he.ToString(c),s=he.ToString(r[i]),C(l,s),!(c+1>=o));)a=c+1<arguments.length?arguments[c+1]:"",u=he.ToString(a),C(l,u),c+=1;return l.join("")}};String.raw&&"xy"!==String.raw({raw:{0:"x",1:"y",length:2}})&&ie(String,"raw",De.raw),v(String,De);var ze=function e(t,r){if(r<1)return"";if(r%2)return e(t,r-1)+t;var n=e(t,r/2);return n+n},Fe=1/0,qe={repeat:function(e){var t=he.ToString(he.RequireObjectCoercible(this)),r=he.ToInteger(e);if(r<0||r>=Fe)throw new RangeError("repeat count must be less than infinity and not overflow maximum string size");return ze(t,r)},startsWith:function(e){var t=he.ToString(he.RequireObjectCoercible(this));if(he.IsRegExp(e))throw new TypeError('Cannot call method "startsWith" with a regex');var r,n=he.ToString(e);arguments.length>1&&(r=arguments[1]);var o=N(he.ToInteger(r),0);return I(t,o,o+n.length)===n},endsWith:function(e){var t=he.ToString(he.RequireObjectCoercible(this));if(he.IsRegExp(e))throw new TypeError('Cannot call method "endsWith" with a regex');var r,n=he.ToString(e),o=t.length;arguments.length>1&&(r=arguments[1]);var i=void 0===r?o:he.ToInteger(r),a=L(N(i,0),o);return I(t,a-n.length,a)===n},includes:function(e){if(he.IsRegExp(e))throw new TypeError('"includes" does not accept a RegExp');var t,r=he.ToString(e);return arguments.length>1&&(t=arguments[1]),-1!==_(this,r,t)},codePointAt:function(e){var t=he.ToString(he.RequireObjectCoercible(this)),r=he.ToInteger(e),n=t.length;if(r>=0&&r<n){var o=t.charCodeAt(r);if(o<55296||o>56319||r+1===n)return o;var i=t.charCodeAt(r+1);return i<56320||i>57343?o:1024*(o-55296)+(i-56320)+65536}}};if(String.prototype.includes&&!1!=="a".includes("a",1/0)&&ie(String.prototype,"includes",qe.includes),String.prototype.startsWith&&String.prototype.endsWith){var $e=u((function(){return"/a/".startsWith(/a/)})),He=l((function(){return!1==="abc".startsWith("a",1/0)}));$e&&He||(ie(String.prototype,"startsWith",qe.startsWith),ie(String.prototype,"endsWith",qe.endsWith))}if(ae){var Ue=l((function(){var e=/a/;return e[J.match]=!1,"/a/".startsWith(e)}));Ue||ie(String.prototype,"startsWith",qe.startsWith);var Be=l((function(){var e=/a/;return e[J.match]=!1,"/a/".endsWith(e)}));Be||ie(String.prototype,"endsWith",qe.endsWith);var Ge=l((function(){var e=/a/;return e[J.match]=!1,"/a/".includes(e)}));Ge||ie(String.prototype,"includes",qe.includes)}v(String.prototype,qe);var We=["\t\n\v\f\r   ᠎    ","          \u2028","\u2029\ufeff"].join(""),Ze=new RegExp("(^["+We+"]+)|(["+We+"]+$)","g"),Ve=function(){return he.ToString(he.RequireObjectCoercible(this)).replace(Ze,"")},Je=["…","​","￾"].join(""),Ke=new RegExp("["+Je+"]","g"),Xe=/^[-+]0x[0-9a-f]+$/i,Ye=Je.trim().length!==Je.length;b(String.prototype,"trim",Ve,Ye);var Qe=function(e){return{value:e,done:0===arguments.length}},et=function(e){he.RequireObjectCoercible(e),this._s=he.ToString(e),this._i=0};et.prototype.next=function(){var e=this._s,t=this._i;if(void 0===e||t>=e.length)return this._s=void 0,Qe();var r,n,o=e.charCodeAt(t);return n=o<55296||o>56319||t+1===e.length?1:(r=e.charCodeAt(t+1))<56320||r>57343?1:2,this._i=t+n,Qe(e.substr(t,n))},Ce(et.prototype),Ce(String.prototype,(function(){return new et(this)}));var tt={from:function(e){var t,n,o,i=this;if(arguments.length>1&&(t=arguments[1]),void 0===t)n=!1;else{if(!he.IsCallable(t))throw new TypeError("Array.from: when provided, the second argument must be a function");arguments.length>2&&(o=arguments[2]),n=!0}var a,s,u,l=void 0!==(ne(e)||he.GetMethod(e,se));if(l){s=he.IsConstructor(i)?Object(new i):[];var c,f,p=he.GetIterator(e);for(u=0;!1!==(c=he.IteratorStep(p));){f=c.value;try{n&&(f=void 0===o?t(f,u):r(t,o,f,u)),s[u]=f}catch(e){throw he.IteratorClose(p,!0),e}u+=1}a=u}else{var h,d=he.ToObject(e);for(a=he.ToLength(d.length),s=he.IsConstructor(i)?Object(new i(a)):new Array(a),u=0;u<a;++u)h=d[u],n&&(h=void 0===o?t(h,u):r(t,o,h,u)),Re(s,u,h)}return s.length=a,s},of:function(){for(var e=arguments.length,t=this,r=i(t)||!he.IsCallable(t)?new Array(e):he.Construct(t,[e]),n=0;n<e;++n)Re(r,n,arguments[n]);return r.length=e,r}};v(Array,tt),Ie(Array),v((e=function(e,t){this.i=0,this.array=e,this.kind=t}).prototype,{next:function(){var t=this.i,r=this.array;if(!(this instanceof e))throw new TypeError("Not an ArrayIterator");if(void 0!==r)for(var n=he.ToLength(r.length);t<n;t++){var o,i=this.kind;return"key"===i?o=t:"value"===i?o=r[t]:"entry"===i&&(o=[t,r[t]]),this.i=t+1,Qe(o)}return this.array=void 0,Qe()}}),Ce(e.prototype);var rt=Array.of===tt.of||function(){var e=function(e){this.length=e};e.prototype=[];var t=Array.of.apply(e,[1,2]);return t instanceof e&&2===t.length}();rt||ie(Array,"of",tt.of);var nt={copyWithin:function(e,t){var r,n=he.ToObject(this),o=he.ToLength(n.length),i=he.ToInteger(e),a=he.ToInteger(t),s=i<0?N(o+i,0):L(i,o),u=a<0?N(o+a,0):L(a,o);arguments.length>2&&(r=arguments[2]);var l=void 0===r?o:he.ToInteger(r),c=l<0?N(o+l,0):L(l,o),f=L(c-u,o-s),p=1;for(u<s&&s<u+f&&(p=-1,u+=f-1,s+=f-1);f>0;)u in n?n[s]=n[u]:delete n[s],u+=p,s+=p,f-=1;return n},fill:function(e){var t,r;arguments.length>1&&(t=arguments[1]),arguments.length>2&&(r=arguments[2]);var n=he.ToObject(this),o=he.ToLength(n.length);t=he.ToInteger(void 0===t?0:t),r=he.ToInteger(void 0===r?o:r);for(var i=t<0?N(o+t,0):L(t,o),a=r<0?o+r:r,s=i;s<o&&s<a;++s)n[s]=e;return n},find:function(e){var t=he.ToObject(this),n=he.ToLength(t.length);if(!he.IsCallable(e))throw new TypeError("Array#find: predicate must be a function");for(var o,i=arguments.length>1?arguments[1]:null,a=0;a<n;a++)if(o=t[a],i){if(r(e,i,o,a,t))return o}else if(e(o,a,t))return o},findIndex:function(e){var t=he.ToObject(this),n=he.ToLength(t.length);if(!he.IsCallable(e))throw new TypeError("Array#findIndex: predicate must be a function");for(var o=arguments.length>1?arguments[1]:null,i=0;i<n;i++)if(o){if(r(e,o,t[i],i,t))return i}else if(e(t[i],i,t))return i;return-1},keys:function(){return new e(this,"key")},values:function(){return new e(this,"value")},entries:function(){return new e(this,"entry")}};if(Array.prototype.keys&&!he.IsCallable([1].keys().next)&&delete Array.prototype.keys,Array.prototype.entries&&!he.IsCallable([1].entries().next)&&delete Array.prototype.entries,Array.prototype.keys&&Array.prototype.entries&&!Array.prototype.values&&Array.prototype[se]&&(v(Array.prototype,{values:Array.prototype[se]}),oe.symbol(J.unscopables)&&(Array.prototype[J.unscopables].values=!0)),h&&Array.prototype.values&&"values"!==Array.prototype.values.name){var ot=Array.prototype.values;ie(Array.prototype,"values",(function(){return he.Call(ot,this,arguments)})),b(Array.prototype,se,Array.prototype.values,!0)}v(Array.prototype,nt),1/[!0].indexOf(!0,-0)<0&&b(Array.prototype,"indexOf",(function(e){var t=k(this,arguments);return 0===t&&1/t<0?0:t}),!0),Ce(Array.prototype,(function(){return this.values()})),Object.getPrototypeOf&&Ce(Object.getPrototypeOf([].values()));var it,at=l((function(){return 0===Array.from({length:-1}).length})),st=1===(it=Array.from([0].entries())).length&&i(it[0])&&0===it[0][0]&&0===it[0][1];at&&st||ie(Array,"from",tt.from);var ut=l((function(){return Array.from([0],void 0)}));if(!ut){var lt=Array.from;ie(Array,"from",(function(e){return arguments.length>1&&void 0!==arguments[1]?he.Call(lt,this,arguments):r(lt,this,e)}))}var ct=-(Math.pow(2,32)-1),ft=function(e,t){var n={length:ct};return n[t?(n.length>>>0)-1:0]=!0,l((function(){return r(e,n,(function(){throw new RangeError("should not reach here")}),[]),!0}))};if(!ft(Array.prototype.forEach)){var pt=Array.prototype.forEach;ie(Array.prototype,"forEach",(function(e){return he.Call(pt,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.map)){var ht=Array.prototype.map;ie(Array.prototype,"map",(function(e){return he.Call(ht,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.filter)){var dt=Array.prototype.filter;ie(Array.prototype,"filter",(function(e){return he.Call(dt,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.some)){var yt=Array.prototype.some;ie(Array.prototype,"some",(function(e){return he.Call(yt,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.every)){var gt=Array.prototype.every;ie(Array.prototype,"every",(function(e){return he.Call(gt,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.reduce)){var mt=Array.prototype.reduce;ie(Array.prototype,"reduce",(function(e){return he.Call(mt,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.reduceRight,!0)){var bt=Array.prototype.reduceRight;ie(Array.prototype,"reduceRight",(function(e){return he.Call(bt,this.length>=0?this:[],arguments)}),!0)}var vt=8!==Number("0o10"),wt=2!==Number("0b10"),Ot=m(Je,(function(e){return 0===Number(e+0+e)}));if(vt||wt||Ot){var St=Number,xt=/^0b[01]+$/i,Tt=/^0o[0-7]+$/i,jt=xt.test.bind(xt),Et=Tt.test.bind(Tt),At=function(e){var t;if("function"==typeof e.valueOf&&(t=e.valueOf(),oe.primitive(t)))return t;if("function"==typeof e.toString&&(t=e.toString(),oe.primitive(t)))return t;throw new TypeError("No default value")},_t=Ke.test.bind(Ke),kt=Xe.test.bind(Xe),Pt=function(){var e=function(t){var r;"string"==typeof(r=arguments.length>0?oe.primitive(t)?t:At(t,"number"):0)&&(r=he.Call(Ve,r),jt(r)?r=parseInt(I(r,2),2):Et(r)?r=parseInt(I(r,2),8):(_t(r)||kt(r))&&(r=NaN));var n=this,o=l((function(){return St.prototype.valueOf.call(n),!0}));return n instanceof e&&!o?new St(r):St(r)};return e}();ke(St,Pt,{}),v(Pt,{NaN:St.NaN,MAX_VALUE:St.MAX_VALUE,MIN_VALUE:St.MIN_VALUE,NEGATIVE_INFINITY:St.NEGATIVE_INFINITY,POSITIVE_INFINITY:St.POSITIVE_INFINITY}),Number=Pt,S.redefine(E,"Number",Pt)}var It=Math.pow(2,53)-1;v(Number,{MAX_SAFE_INTEGER:It,MIN_SAFE_INTEGER:-It,EPSILON:2220446049250313e-31,parseInt:E.parseInt,parseFloat:E.parseFloat,isFinite:Y,isInteger:function(e){return Y(e)&&he.ToInteger(e)===e},isSafeInteger:function(e){return Number.isInteger(e)&&z(e)<=Number.MAX_SAFE_INTEGER},isNaN:X}),b(Number,"parseInt",E.parseInt,Number.parseInt!==E.parseInt),1===[,1].find((function(){return!0}))&&ie(Array.prototype,"find",nt.find),0!==[,1].findIndex((function(){return!0}))&&ie(Array.prototype,"findIndex",nt.findIndex);var Ct,Mt,Rt,Nt=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable),Lt=function(e,t){p&&Nt(e,t)&&Object.defineProperty(e,t,{enumerable:!1})},Dt=function(){for(var e=Number(this),t=arguments.length,r=t-e,n=new Array(r<0?0:r),o=e;o<t;++o)n[o-e]=arguments[o];return n},zt=function(e){return function(t,r){return t[r]=e[r],t}},Ft=function(e,t){var r,n=a(Object(t));return he.IsCallable(Object.getOwnPropertySymbols)&&(r=g(Object.getOwnPropertySymbols(Object(t)),Nt(t))),y(P(n,r||[]),zt(t),e)},qt={assign:function(e,t){var r=he.ToObject(e,"Cannot convert undefined or null to object");return y(he.Call(Dt,1,arguments),Ft,r)},is:function(e,t){return he.SameValue(e,t)}},$t=Object.assign&&Object.preventExtensions&&function(){var e=Object.preventExtensions({1:2});try{Object.assign(e,"xy")}catch(t){return"y"===e[1]}}();if($t&&ie(Object,"assign",qt.assign),v(Object,qt),p){var Ht={setPrototypeOf:function(e,t){var n,o=function(e,t){return function(e,t){if(!he.TypeIsObject(e))throw new TypeError("cannot set prototype on a non-object");if(null!==t&&!he.TypeIsObject(t))throw new TypeError("can only set prototype to an object or null"+t)}(e,t),r(n,e,t),e};try{n=e.getOwnPropertyDescriptor(e.prototype,"__proto__").set,r(n,{},null)}catch(t){if(e.prototype!=={}.__proto__)return;n=function(e){this.__proto__=e},o.polyfill=o(o({},null),e.prototype)instanceof e}return o}(Object)};v(Object,Ht)}Object.setPrototypeOf&&Object.getPrototypeOf&&null!==Object.getPrototypeOf(Object.setPrototypeOf({},null))&&null===Object.getPrototypeOf(Object.create(null))&&(Ct=Object.create(null),Mt=Object.getPrototypeOf,Rt=Object.setPrototypeOf,Object.getPrototypeOf=function(e){var t=Mt(e);return t===Ct?null:t},Object.setPrototypeOf=function(e,t){return Rt(e,null===t?Ct:t)},Object.setPrototypeOf.polyfill=!1);var Ut=!u((function(){return Object.keys("foo")}));if(!Ut){var Bt=Object.keys;ie(Object,"keys",(function(e){return Bt(he.ToObject(e))})),a=Object.keys}var Gt=u((function(){return Object.keys(/a/g)}));if(Gt){var Wt=Object.keys;ie(Object,"keys",(function(e){if(oe.regex(e)){var t=[];for(var r in e)H(e,r)&&C(t,r);return t}return Wt(e)})),a=Object.keys}if(Object.getOwnPropertyNames){var Zt=!u((function(){return Object.getOwnPropertyNames("foo")}));if(!Zt){var Vt="object"==typeof window?Object.getOwnPropertyNames(window):[],Jt=Object.getOwnPropertyNames;ie(Object,"getOwnPropertyNames",(function(e){var t=he.ToObject(e);if("[object Window]"===w(t))try{return Jt(t)}catch(e){return P([],Vt)}return Jt(t)}))}}if(Object.getOwnPropertyDescriptor){var Kt=!u((function(){return Object.getOwnPropertyDescriptor("foo","bar")}));if(!Kt){var Xt=Object.getOwnPropertyDescriptor;ie(Object,"getOwnPropertyDescriptor",(function(e,t){return Xt(he.ToObject(e),t)}))}}if(Object.seal){var Yt=!u((function(){return Object.seal("foo")}));if(!Yt){var Qt=Object.seal;ie(Object,"seal",(function(e){return he.TypeIsObject(e)?Qt(e):e}))}}if(Object.isSealed){var er=!u((function(){return Object.isSealed("foo")}));if(!er){var tr=Object.isSealed;ie(Object,"isSealed",(function(e){return!he.TypeIsObject(e)||tr(e)}))}}if(Object.freeze){var rr=!u((function(){return Object.freeze("foo")}));if(!rr){var nr=Object.freeze;ie(Object,"freeze",(function(e){return he.TypeIsObject(e)?nr(e):e}))}}if(Object.isFrozen){var or=!u((function(){return Object.isFrozen("foo")}));if(!or){var ir=Object.isFrozen;ie(Object,"isFrozen",(function(e){return!he.TypeIsObject(e)||ir(e)}))}}if(Object.preventExtensions){var ar=!u((function(){return Object.preventExtensions("foo")}));if(!ar){var sr=Object.preventExtensions;ie(Object,"preventExtensions",(function(e){return he.TypeIsObject(e)?sr(e):e}))}}if(Object.isExtensible){var ur=!u((function(){return Object.isExtensible("foo")}));if(!ur){var lr=Object.isExtensible;ie(Object,"isExtensible",(function(e){return!!he.TypeIsObject(e)&&lr(e)}))}}if(Object.getPrototypeOf){var cr=!u((function(){return Object.getPrototypeOf("foo")}));if(!cr){var fr=Object.getPrototypeOf;ie(Object,"getPrototypeOf",(function(e){return fr(he.ToObject(e))}))}}var pr,hr=p&&((pr=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags"))&&he.IsCallable(pr.get));if(p&&!hr){var dr=function(){if(!he.TypeIsObject(this))throw new TypeError("Method called on incompatible type: must be an object.");var e="";return this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.unicode&&(e+="u"),this.sticky&&(e+="y"),e};S.getter(RegExp.prototype,"flags",dr)}var yr,gr=p&&l((function(){return"/a/i"===String(new RegExp(/a/g,"i"))})),mr=ae&&p&&((yr=/./)[J.match]=!1,RegExp(yr)===yr),br=l((function(){return"/abc/"===RegExp.prototype.toString.call({source:"abc"})})),vr=br&&l((function(){return"/a/b"===RegExp.prototype.toString.call({source:"a",flags:"b"})}));if(!br||!vr){var wr=RegExp.prototype.toString;b(RegExp.prototype,"toString",(function(){var e=he.RequireObjectCoercible(this);return oe.regex(e)?r(wr,e):"/"+ce(e.source)+"/"+ce(e.flags)}),!0),S.preserveToString(RegExp.prototype.toString,wr)}if(p&&(!gr||mr)){var Or=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags").get,Sr=Object.getOwnPropertyDescriptor(RegExp.prototype,"source")||{},xr=function(){return this.source},Tr=he.IsCallable(Sr.get)?Sr.get:xr,jr=RegExp,Er=function e(t,r){var n=he.IsRegExp(t);return this instanceof e||!n||void 0!==r||t.constructor!==e?oe.regex(t)?new e(he.Call(Tr,t),void 0===r?he.Call(Or,t):r):(n&&(t.source,void 0===r&&t.flags),new jr(t,r)):t};ke(jr,Er,{$input:!0}),RegExp=Er,S.redefine(E,"RegExp",Er)}if(p){var Ar={input:"$_",lastMatch:"$&",lastParen:"$+",leftContext:"$`",rightContext:"$'"};d(a(Ar),(function(e){e in RegExp&&!(Ar[e]in RegExp)&&S.getter(RegExp,Ar[e],(function(){return RegExp[e]}))}))}Ie(RegExp);var _r=1/Number.EPSILON,kr=function(e){return e+_r-_r},Pr=Math.pow(2,-23),Ir=Math.pow(2,127)*(2-Pr),Cr=Math.pow(2,-126),Mr=Math.E,Rr=Math.LOG2E,Nr=Math.LOG10E,Lr=Number.prototype.clz;delete Number.prototype.clz;var Dr={acosh:function(e){var t=Number(e);if(X(t)||e<1)return NaN;if(1===t)return 0;if(t===1/0)return t;var r=1/(t*t);if(t<2)return ee(t-1+$(1-r)*t);var n=t/2;return ee(n+$(1-r)*n-1)+1/Rr},asinh:function(e){var t=Number(e);if(0===t||!A(t))return t;var r=z(t),n=r*r,o=Q(t);return r<1?o*ee(r+n/($(n+1)+1)):o*(ee(r/2+$(1+1/n)*r/2-1)+1/Rr)},atanh:function(e){var t=Number(e);if(0===t)return t;if(-1===t)return-1/0;if(1===t)return 1/0;if(X(t)||t<-1||t>1)return NaN;var r=z(t);return Q(t)*ee(2*r/(1-r))/2},cbrt:function(e){var t=Number(e);if(0===t)return t;var r,n=t<0;return n&&(t=-t),r=t===1/0?1/0:(t/((r=F(q(t)/3))*r)+2*r)/3,n?-r:r},clz32:function(e){var t=Number(e),r=he.ToUint32(t);return 0===r?32:Lr?he.Call(Lr,r):31-D(q(r+.5)*Rr)},cosh:function(e){var t=Number(e);if(0===t)return 1;if(X(t))return NaN;if(!A(t))return 1/0;var r=F(z(t)-1);return(r+1/(r*Mr*Mr))*(Mr/2)},expm1:function(e){var t=Number(e);if(t===-1/0)return-1;if(!A(t)||0===t)return t;if(z(t)>.5)return F(t)-1;for(var r=t,n=0,o=1;n+r!==n;)n+=r,r*=t/(o+=1);return n},hypot:function(e,t){for(var r=0,n=0,o=0;o<arguments.length;++o){var i=z(Number(arguments[o]));n<i?(r*=n/i*(n/i),r+=1,n=i):r+=i>0?i/n*(i/n):i}return n===1/0?1/0:n*$(r)},log2:function(e){return q(e)*Rr},log10:function(e){return q(e)*Nr},log1p:ee,sign:Q,sinh:function(e){var t=Number(e);if(!A(t)||0===t)return t;var r=z(t);if(r<1){var n=Math.expm1(r);return Q(t)*n*(1+1/(n+1))/2}var o=F(r-1);return Q(t)*(o-1/(o*Mr*Mr))*(Mr/2)},tanh:function(e){var t=Number(e);return X(t)||0===t?t:t>=20?1:t<=-20?-1:(Math.expm1(t)-Math.expm1(-t))/(F(t)+F(-t))},trunc:function(e){var t=Number(e);return t<0?-D(-t):D(t)},imul:function(e,t){var r=he.ToUint32(e),n=he.ToUint32(t),o=65535&r,i=65535&n;return o*i+((r>>>16&65535)*i+o*(n>>>16&65535)<<16>>>0)|0},fround:function(e){var t=Number(e);if(0===t||t===1/0||t===-1/0||X(t))return t;var r=Q(t),n=z(t);if(n<Cr)return r*kr(n/Cr/Pr)*Cr*Pr;var o=(1+Pr/Number.EPSILON)*n,i=o-(o-n);return i>Ir||X(i)?r*(1/0):r*i}},zr=function(e,t,r){return z(1-e/t)/Number.EPSILON<(r||8)};v(Math,Dr),b(Math,"sinh",Dr.sinh,Math.sinh(710)===1/0),b(Math,"cosh",Dr.cosh,Math.cosh(710)===1/0),b(Math,"log1p",Dr.log1p,-1e-17!==Math.log1p(-1e-17)),b(Math,"asinh",Dr.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7)),b(Math,"asinh",Dr.asinh,Math.asinh(1e300)===1/0),b(Math,"atanh",Dr.atanh,0===Math.atanh(1e-300)),b(Math,"tanh",Dr.tanh,-2e-17!==Math.tanh(-2e-17)),b(Math,"acosh",Dr.acosh,Math.acosh(Number.MAX_VALUE)===1/0),b(Math,"acosh",Dr.acosh,!zr(Math.acosh(1+Number.EPSILON),Math.sqrt(2*Number.EPSILON))),b(Math,"cbrt",Dr.cbrt,!zr(Math.cbrt(1e-300),1e-100)),b(Math,"sinh",Dr.sinh,-2e-17!==Math.sinh(-2e-17));var Fr=Math.expm1(10);b(Math,"expm1",Dr.expm1,Fr>22025.465794806718||Fr<22025.465794806718);var qr=Math.round,$r=0===Math.round(.5-Number.EPSILON/4)&&1===Math.round(Number.EPSILON/3.99-.5),Hr=_r+1,Ur=2*_r-1,Br=[Hr,Ur].every((function(e){return Math.round(e)===e}));b(Math,"round",(function(e){var t=D(e);return e-t<.5?t:-1===t?-0:t+1}),!$r||!Br),S.preserveToString(Math.round,qr);var Gr=Math.imul;-5!==Math.imul(4294967295,5)&&(Math.imul=Dr.imul,S.preserveToString(Math.imul,Gr)),2!==Math.imul.length&&ie(Math,"imul",(function(e,t){return he.Call(Gr,Math,arguments)}));var Wr,Zr,Vr=function(){var e=E.setTimeout;if("function"==typeof e||"object"==typeof e){he.IsPromise=function(e){return!!he.TypeIsObject(e)&&void 0!==e._promise};var t,n=function(e){if(!he.IsConstructor(e))throw new TypeError("Bad promise constructor");var t=this;if(t.resolve=void 0,t.reject=void 0,t.promise=new e((function(e,r){if(void 0!==t.resolve||void 0!==t.reject)throw new TypeError("Bad Promise implementation!");t.resolve=e,t.reject=r})),!he.IsCallable(t.resolve)||!he.IsCallable(t.reject))throw new TypeError("Bad promise constructor")};"undefined"!=typeof window&&he.IsCallable(window.postMessage)&&(t=function(){var e=[];return window.addEventListener("message",(function(t){if(t.source===window&&"zero-timeout-message"===t.data){if(t.stopPropagation(),0===e.length)return;R(e)()}}),!0),function(t){C(e,t),window.postMessage("zero-timeout-message","*")}});var i,a,s,u,l=he.IsCallable(E.setImmediate)?E.setImmediate:"object"==typeof o&&o.nextTick?o.nextTick:(i=E.Promise,(a=i&&i.resolve&&i.resolve())&&function(e){return a.then(e)}||(he.IsCallable(t)?t():function(t){e(t,0)})),c=function(e){return e},f=function(e){throw e},p={},h=function(e,t,r){l((function(){d(e,t,r)}))},d=function(e,t,r){var n,o;if(t===p)return e(r);try{n=e(r),o=t.resolve}catch(e){n=e,o=t.reject}o(n)},y=function(e,t){var r=e._promise,n=r.reactionLength;if(n>0&&(h(r.fulfillReactionHandler0,r.reactionCapability0,t),r.fulfillReactionHandler0=void 0,r.rejectReactions0=void 0,r.reactionCapability0=void 0,n>1))for(var o=1,i=0;o<n;o++,i+=3)h(r[i+0],r[i+2],t),e[i+0]=void 0,e[i+1]=void 0,e[i+2]=void 0;r.result=t,r.state=1,r.reactionLength=0},g=function(e,t){var r=e._promise,n=r.reactionLength;if(n>0&&(h(r.rejectReactionHandler0,r.reactionCapability0,t),r.fulfillReactionHandler0=void 0,r.rejectReactions0=void 0,r.reactionCapability0=void 0,n>1))for(var o=1,i=0;o<n;o++,i+=3)h(r[i+1],r[i+2],t),e[i+0]=void 0,e[i+1]=void 0,e[i+2]=void 0;r.result=t,r.state=2,r.reactionLength=0},m=function(e){var t=!1;return{resolve:function(r){var n;if(!t){if(t=!0,r===e)return g(e,new TypeError("Self resolution"));if(!he.TypeIsObject(r))return y(e,r);try{n=r.then}catch(t){return g(e,t)}if(!he.IsCallable(n))return y(e,r);l((function(){w(e,r,n)}))}},reject:function(r){if(!t)return t=!0,g(e,r)}}},b=function(e,t,n,o){e===u?r(e,t,n,o,p):r(e,t,n,o)},w=function(e,t,r){var n=m(e),o=n.resolve,i=n.reject;try{b(r,t,o,i)}catch(e){i(e)}},O=function(){var e=function(t){if(!(this instanceof e))throw new TypeError('Constructor Promise requires "new"');if(this&&this._promise)throw new TypeError("Bad construction");if(!he.IsCallable(t))throw new TypeError("not a valid resolver");var r=Ne(this,e,s,{_promise:{result:void 0,state:0,reactionLength:0,fulfillReactionHandler0:void 0,rejectReactionHandler0:void 0,reactionCapability0:void 0}}),n=m(r),o=n.reject;try{t(n.resolve,o)}catch(e){o(e)}return r};return e}();s=O.prototype;var S=function(e,t,r,n){var o=!1;return function(i){o||(o=!0,t[e]=i,0==--n.count&&(0,r.resolve)(t))}};return v(O,{all:function(e){var t=this;if(!he.TypeIsObject(t))throw new TypeError("Promise is not object");var r,o,i=new n(t);try{return function(e,t,r){for(var n,o,i=e.iterator,a=[],s={count:1},u=0;;){try{if(!1===(n=he.IteratorStep(i))){e.done=!0;break}o=n.value}catch(t){throw e.done=!0,t}a[u]=void 0;var l=t.resolve(o),c=S(u,a,r,s);s.count+=1,b(l.then,l,c,r.reject),u+=1}return 0==--s.count&&(0,r.resolve)(a),r.promise}(o={iterator:r=he.GetIterator(e),done:!1},t,i)}catch(e){var a=e;if(o&&!o.done)try{he.IteratorClose(r,!0)}catch(e){a=e}return(0,i.reject)(a),i.promise}},race:function(e){var t=this;if(!he.TypeIsObject(t))throw new TypeError("Promise is not object");var r,o,i=new n(t);try{return function(e,t,r){for(var n,o,i,a=e.iterator;;){try{if(!1===(n=he.IteratorStep(a))){e.done=!0;break}o=n.value}catch(t){throw e.done=!0,t}i=t.resolve(o),b(i.then,i,r.resolve,r.reject)}return r.promise}(o={iterator:r=he.GetIterator(e),done:!1},t,i)}catch(e){var a=e;if(o&&!o.done)try{he.IteratorClose(r,!0)}catch(e){a=e}return(0,i.reject)(a),i.promise}},reject:function(e){if(!he.TypeIsObject(this))throw new TypeError("Bad promise constructor");var t=new n(this);return(0,t.reject)(e),t.promise},resolve:function(e){var t=this;if(!he.TypeIsObject(t))throw new TypeError("Bad promise constructor");if(he.IsPromise(e)&&e.constructor===t)return e;var r=new n(t);return(0,r.resolve)(e),r.promise}}),v(s,{catch:function(e){return this.then(null,e)},then:function(e,t){var r=this;if(!he.IsPromise(r))throw new TypeError("not a promise");var o,i=he.SpeciesConstructor(r,O),a=arguments.length>2&&arguments[2]===p;o=a&&i===O?p:new n(i);var s,u=he.IsCallable(e)?e:c,l=he.IsCallable(t)?t:f,d=r._promise;if(0===d.state){if(0===d.reactionLength)d.fulfillReactionHandler0=u,d.rejectReactionHandler0=l,d.reactionCapability0=o;else{var y=3*(d.reactionLength-1);d[y+0]=u,d[y+1]=l,d[y+2]=o}d.reactionLength+=1}else if(1===d.state)s=d.result,h(u,o,s);else{if(2!==d.state)throw new TypeError("unexpected Promise state");s=d.result,h(l,o,s)}return o.promise}}),p=new n(O),u=s.then,O}}();if(E.Promise&&(delete E.Promise.accept,delete E.Promise.defer,delete E.Promise.prototype.chain),"function"==typeof Vr){v(E,{Promise:Vr});var Jr=T(E.Promise,(function(e){return e.resolve(42).then((function(){}))instanceof e})),Kr=!u((function(){return E.Promise.reject(42).then(null,5).then(null,U)})),Xr=u((function(){return E.Promise.call(3,U)})),Yr=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);try{r.then(null,U).then(null,U)}catch(e){return!0}return t===r}(E.Promise),Qr=p&&(Wr=0,Zr=Object.defineProperty({},"then",{get:function(){Wr+=1}}),Promise.resolve(Zr),1===Wr),en=function e(t){var r=new Promise(t);t(3,(function(){})),this.then=r.then,this.constructor=e};en.prototype=Promise.prototype,en.all=Promise.all;var tn=l((function(){return!!en.all([1,2])}));if(Jr&&Kr&&Xr&&!Yr&&Qr&&!tn||(Promise=Vr,ie(E,"Promise",Vr)),1!==Promise.all.length){var rn=Promise.all;ie(Promise,"all",(function(e){return he.Call(rn,this,arguments)}))}if(1!==Promise.race.length){var nn=Promise.race;ie(Promise,"race",(function(e){return he.Call(nn,this,arguments)}))}if(1!==Promise.resolve.length){var on=Promise.resolve;ie(Promise,"resolve",(function(e){return he.Call(on,this,arguments)}))}if(1!==Promise.reject.length){var an=Promise.reject;ie(Promise,"reject",(function(e){return he.Call(an,this,arguments)}))}Lt(Promise,"all"),Lt(Promise,"race"),Lt(Promise,"resolve"),Lt(Promise,"reject"),Ie(Promise)}var sn,un,ln=function(e){var t=a(y(e,(function(e,t){return e[t]=!0,e}),{}));return e.join(":")===t.join(":")},cn=ln(["z","a","bb"]),fn=ln(["z",1,"a","3",2]);if(p){var pn=function(e,t){return t||cn?pe(e)?"^"+he.ToString(e):"string"==typeof e?"$"+e:"number"==typeof e?fn?e:"n"+e:"boolean"==typeof e?"b"+e:null:null},hn=function(){return Object.create?Object.create(null):{}},dn=function(e,t,n){if(i(n)||oe.string(n))d(n,(function(e){if(!he.TypeIsObject(e))throw new TypeError("Iterator value "+e+" is not an entry object");t.set(e[0],e[1])}));else if(n instanceof e)r(e.prototype.forEach,n,(function(e,r){t.set(r,e)}));else{var o,a;if(!pe(n)){if(a=t.set,!he.IsCallable(a))throw new TypeError("bad map");o=he.GetIterator(n)}if(void 0!==o)for(;;){var s=he.IteratorStep(o);if(!1===s)break;var u=s.value;try{if(!he.TypeIsObject(u))throw new TypeError("Iterator value "+u+" is not an entry object");r(a,t,u[0],u[1])}catch(e){throw he.IteratorClose(o,!0),e}}}},yn=function(e,t,n){if(i(n)||oe.string(n))d(n,(function(e){t.add(e)}));else if(n instanceof e)r(e.prototype.forEach,n,(function(e){t.add(e)}));else{var o,a;if(!pe(n)){if(a=t.add,!he.IsCallable(a))throw new TypeError("bad set");o=he.GetIterator(n)}if(void 0!==o)for(;;){var s=he.IteratorStep(o);if(!1===s)break;var u=s.value;try{r(a,t,u)}catch(e){throw he.IteratorClose(o,!0),e}}}},gn={Map:function(){var e={},t=function(e,t){this.key=e,this.value=t,this.next=null,this.prev=null};t.prototype.isRemoved=function(){return this.key===e};var n,o=function(e,t){if(!he.TypeIsObject(e)||!function(e){return!!e._es6map}(e))throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+he.ToString(e))},i=function(e,t){o(e,"[[MapIterator]]"),this.head=e._head,this.i=this.head,this.kind=t};Ce(i.prototype={isMapIterator:!0,next:function(){if(!this.isMapIterator)throw new TypeError("Not a MapIterator");var e,t=this.i,r=this.kind,n=this.head;if(void 0===this.i)return Qe();for(;t.isRemoved()&&t!==n;)t=t.prev;for(;t.next!==n;)if(!(t=t.next).isRemoved())return e="key"===r?t.key:"value"===r?t.value:[t.key,t.value],this.i=t,Qe(e);return this.i=void 0,Qe()}});var a=function e(){if(!(this instanceof e))throw new TypeError('Constructor Map requires "new"');if(this&&this._es6map)throw new TypeError("Bad construction");var r=Ne(this,e,n,{_es6map:!0,_head:null,_map:B?new B:null,_size:0,_storage:hn()}),o=new t(null,null);return o.next=o.prev=o,r._head=o,arguments.length>0&&dn(e,r,arguments[0]),r};return n=a.prototype,S.getter(n,"size",(function(){if(void 0===this._size)throw new TypeError("size method called on incompatible Map");return this._size})),v(n,{get:function(e){var t;o(this,"get");var r=pn(e,!0);if(null!==r)return(t=this._storage[r])?t.value:void 0;if(this._map)return(t=W.call(this._map,e))?t.value:void 0;for(var n=this._head,i=n;(i=i.next)!==n;)if(he.SameValueZero(i.key,e))return i.value},has:function(e){o(this,"has");var t=pn(e,!0);if(null!==t)return void 0!==this._storage[t];if(this._map)return Z.call(this._map,e);for(var r=this._head,n=r;(n=n.next)!==r;)if(he.SameValueZero(n.key,e))return!0;return!1},set:function(e,r){o(this,"set");var n,i=this._head,a=i,s=pn(e,!0);if(null!==s){if(void 0!==this._storage[s])return this._storage[s].value=r,this;n=this._storage[s]=new t(e,r),a=i.prev}else this._map&&(Z.call(this._map,e)?W.call(this._map,e).value=r:(n=new t(e,r),V.call(this._map,e,n),a=i.prev));for(;(a=a.next)!==i;)if(he.SameValueZero(a.key,e))return a.value=r,this;return n=n||new t(e,r),he.SameValue(-0,e)&&(n.key=0),n.next=this._head,n.prev=this._head.prev,n.prev.next=n,n.next.prev=n,this._size+=1,this},delete:function(t){o(this,"delete");var r=this._head,n=r,i=pn(t,!0);if(null!==i){if(void 0===this._storage[i])return!1;n=this._storage[i].prev,delete this._storage[i]}else if(this._map){if(!Z.call(this._map,t))return!1;n=W.call(this._map,t).prev,G.call(this._map,t)}for(;(n=n.next)!==r;)if(he.SameValueZero(n.key,t))return n.key=e,n.value=e,n.prev.next=n.next,n.next.prev=n.prev,this._size-=1,!0;return!1},clear:function(){o(this,"clear"),this._map=B?new B:null,this._size=0,this._storage=hn();for(var t=this._head,r=t,n=r.next;(r=n)!==t;)r.key=e,r.value=e,n=r.next,r.next=r.prev=t;t.next=t.prev=t},keys:function(){return o(this,"keys"),new i(this,"key")},values:function(){return o(this,"values"),new i(this,"value")},entries:function(){return o(this,"entries"),new i(this,"key+value")},forEach:function(e){o(this,"forEach");for(var t=arguments.length>1?arguments[1]:null,n=this.entries(),i=n.next();!i.done;i=n.next())t?r(e,t,i.value[1],i.value[0],this):e(i.value[1],i.value[0],this)}}),Ce(n,n.entries),a}(),Set:function(){var e,t=function(e,t){if(!he.TypeIsObject(e)||!function(e){return e._es6set&&void 0!==e._storage}(e))throw new TypeError("Set.prototype."+t+" called on incompatible receiver "+he.ToString(e))},n=function t(){if(!(this instanceof t))throw new TypeError('Constructor Set requires "new"');if(this&&this._es6set)throw new TypeError("Bad construction");var r=Ne(this,t,e,{_es6set:!0,"[[SetData]]":null,_storage:hn()});if(!r._es6set)throw new TypeError("bad set");return arguments.length>0&&yn(t,r,arguments[0]),r};e=n.prototype;var o=function(e){if(!e["[[SetData]]"]){var t=new gn.Map;e["[[SetData]]"]=t,d(a(e._storage),(function(e){var r=function(e){var t=e;if("^null"===t)return null;if("^undefined"!==t){var r=t.charAt(0);return"$"===r?I(t,1):"n"===r?+I(t,1):"b"===r?"btrue"===t:+t}}(e);t.set(r,r)})),e["[[SetData]]"]=t}e._storage=null};S.getter(n.prototype,"size",(function(){return t(this,"size"),this._storage?a(this._storage).length:(o(this),this["[[SetData]]"].size)})),v(n.prototype,{has:function(e){var r;return t(this,"has"),this._storage&&null!==(r=pn(e))?!!this._storage[r]:(o(this),this["[[SetData]]"].has(e))},add:function(e){var r;return t(this,"add"),this._storage&&null!==(r=pn(e))?(this._storage[r]=!0,this):(o(this),this["[[SetData]]"].set(e,e),this)},delete:function(e){var r;if(t(this,"delete"),this._storage&&null!==(r=pn(e))){var n=H(this._storage,r);return delete this._storage[r]&&n}return o(this),this["[[SetData]]"].delete(e)},clear:function(){t(this,"clear"),this._storage&&(this._storage=hn()),this["[[SetData]]"]&&this["[[SetData]]"].clear()},values:function(){return t(this,"values"),o(this),new i(this["[[SetData]]"].values())},entries:function(){return t(this,"entries"),o(this),new i(this["[[SetData]]"].entries())},forEach:function(e){t(this,"forEach");var n=arguments.length>1?arguments[1]:null,i=this;o(i),this["[[SetData]]"].forEach((function(t,o){n?r(e,n,o,o,i):e(o,o,i)}))}}),b(n.prototype,"keys",n.prototype.values,!0),Ce(n.prototype,n.prototype.values);var i=function(e){this.it=e};return i.prototype={isSetIterator:!0,next:function(){if(!this.isSetIterator)throw new TypeError("Not a SetIterator");return this.it.next()}},Ce(i.prototype),n}()},mn=E.Set&&!Set.prototype.delete&&Set.prototype.remove&&Set.prototype.items&&Set.prototype.map&&Array.isArray((new Set).keys);if(mn&&(E.Set=gn.Set),E.Map||E.Set){var bn=l((function(){return 2===new Map([[1,2]]).get(1)}));bn||(E.Map=function e(){if(!(this instanceof e))throw new TypeError('Constructor Map requires "new"');var t=new B;return arguments.length>0&&dn(e,t,arguments[0]),delete t.constructor,Object.setPrototypeOf(t,E.Map.prototype),t},E.Map.prototype=x(B.prototype),b(E.Map.prototype,"constructor",E.Map,!0),S.preserveToString(E.Map,B));var vn=new Map,wn=((un=new Map([[1,0],[2,0],[3,0],[4,0]])).set(-0,un),un.get(0)===un&&un.get(-0)===un&&un.has(0)&&un.has(-0)),On=vn.set(1,2)===vn;wn&&On||ie(Map.prototype,"set",(function(e,t){return r(V,this,0===e?0:e,t),this})),wn||(v(Map.prototype,{get:function(e){return r(W,this,0===e?0:e)},has:function(e){return r(Z,this,0===e?0:e)}},!0),S.preserveToString(Map.prototype.get,W),S.preserveToString(Map.prototype.has,Z));var Sn=new Set,xn=Set.prototype.delete&&Set.prototype.add&&Set.prototype.has&&((sn=Sn).delete(0),sn.add(-0),!sn.has(0)),Tn=Sn.add(1)===Sn;if(!xn||!Tn){var jn=Set.prototype.add;Set.prototype.add=function(e){return r(jn,this,0===e?0:e),this},S.preserveToString(Set.prototype.add,jn)}if(!xn){var En=Set.prototype.has;Set.prototype.has=function(e){return r(En,this,0===e?0:e)},S.preserveToString(Set.prototype.has,En);var An=Set.prototype.delete;Set.prototype.delete=function(e){return r(An,this,0===e?0:e)},S.preserveToString(Set.prototype.delete,An)}var _n=T(E.Map,(function(e){var t=new e([]);return t.set(42,42),t instanceof e})),kn=Object.setPrototypeOf&&!_n,Pn=function(){try{return!(E.Map()instanceof E.Map)}catch(e){return e instanceof TypeError}}();0===E.Map.length&&!kn&&Pn||(E.Map=function e(){if(!(this instanceof e))throw new TypeError('Constructor Map requires "new"');var t=new B;return arguments.length>0&&dn(e,t,arguments[0]),delete t.constructor,Object.setPrototypeOf(t,e.prototype),t},E.Map.prototype=B.prototype,b(E.Map.prototype,"constructor",E.Map,!0),S.preserveToString(E.Map,B));var In=T(E.Set,(function(e){var t=new e([]);return t.add(42,42),t instanceof e})),Cn=Object.setPrototypeOf&&!In,Mn=function(){try{return!(E.Set()instanceof E.Set)}catch(e){return e instanceof TypeError}}();if(0!==E.Set.length||Cn||!Mn){var Rn=E.Set;E.Set=function e(){if(!(this instanceof e))throw new TypeError('Constructor Set requires "new"');var t=new Rn;return arguments.length>0&&yn(e,t,arguments[0]),delete t.constructor,Object.setPrototypeOf(t,e.prototype),t},E.Set.prototype=Rn.prototype,b(E.Set.prototype,"constructor",E.Set,!0),S.preserveToString(E.Set,Rn)}var Nn=new E.Map,Ln=!l((function(){return Nn.keys().next().done}));if(("function"!=typeof E.Map.prototype.clear||0!==(new E.Set).size||0!==Nn.size||"function"!=typeof E.Map.prototype.keys||"function"!=typeof E.Set.prototype.keys||"function"!=typeof E.Map.prototype.forEach||"function"!=typeof E.Set.prototype.forEach||c(E.Map)||c(E.Set)||"function"!=typeof Nn.keys().next||Ln||!_n)&&v(E,{Map:gn.Map,Set:gn.Set},!0),E.Set.prototype.keys!==E.Set.prototype.values&&b(E.Set.prototype,"keys",E.Set.prototype.values,!0),Ce(Object.getPrototypeOf((new E.Map).keys())),Ce(Object.getPrototypeOf((new E.Set).keys())),h&&"has"!==E.Set.prototype.has.name){var Dn=E.Set.prototype.has;ie(E.Set.prototype,"has",(function(e){return r(Dn,this,e)}))}}v(E,gn),Ie(E.Map),Ie(E.Set)}var zn=function(e){if(!he.TypeIsObject(e))throw new TypeError("target must be an object")},Fn={apply:function(){return he.Call(he.Call,null,arguments)},construct:function(e,t){if(!he.IsConstructor(e))throw new TypeError("First argument must be a constructor.");var r=arguments.length>2?arguments[2]:e;if(!he.IsConstructor(r))throw new TypeError("new.target must be a constructor.");return he.Construct(e,t,r,"internal")},deleteProperty:function(e,t){if(zn(e),p){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable)return!1}return delete e[t]},has:function(e,t){return zn(e),t in e}};Object.getOwnPropertyNames&&Object.assign(Fn,{ownKeys:function(e){zn(e);var t=Object.getOwnPropertyNames(e);return he.IsCallable(Object.getOwnPropertySymbols)&&M(t,Object.getOwnPropertySymbols(e)),t}});var qn=function(e){return!u(e)};if(Object.preventExtensions&&Object.assign(Fn,{isExtensible:function(e){return zn(e),Object.isExtensible(e)},preventExtensions:function(e){return zn(e),qn((function(){return Object.preventExtensions(e)}))}}),p){var $n=function(e,t,r){var n=Object.getOwnPropertyDescriptor(e,t);if(!n){var o=Object.getPrototypeOf(e);if(null===o)return;return $n(o,t,r)}return"value"in n?n.value:n.get?he.Call(n.get,r):void 0},Hn=function(e,t,n,o){var i=Object.getOwnPropertyDescriptor(e,t);if(!i){var a=Object.getPrototypeOf(e);if(null!==a)return Hn(a,t,n,o);i={value:void 0,writable:!0,enumerable:!0,configurable:!0}}return"value"in i?!!i.writable&&!!he.TypeIsObject(o)&&(Object.getOwnPropertyDescriptor(o,t)?le.defineProperty(o,t,{value:n}):le.defineProperty(o,t,{value:n,writable:!0,enumerable:!0,configurable:!0})):!!i.set&&(r(i.set,o,n),!0)};Object.assign(Fn,{defineProperty:function(e,t,r){return zn(e),qn((function(){return Object.defineProperty(e,t,r)}))},getOwnPropertyDescriptor:function(e,t){return zn(e),Object.getOwnPropertyDescriptor(e,t)},get:function(e,t){zn(e);var r=arguments.length>2?arguments[2]:e;return $n(e,t,r)},set:function(e,t,r){zn(e);var n=arguments.length>3?arguments[3]:e;return Hn(e,t,r,n)}})}if(Object.getPrototypeOf){var Un=Object.getPrototypeOf;Fn.getPrototypeOf=function(e){return zn(e),Un(e)}}if(Object.setPrototypeOf&&Fn.getPrototypeOf){var Bn=function(e,t){for(var r=t;r;){if(e===r)return!0;r=Fn.getPrototypeOf(r)}return!1};Object.assign(Fn,{setPrototypeOf:function(e,t){if(zn(e),null!==t&&!he.TypeIsObject(t))throw new TypeError("proto must be an object or null");return t===le.getPrototypeOf(e)||!(le.isExtensible&&!le.isExtensible(e))&&!Bn(e,t)&&(Object.setPrototypeOf(e,t),!0)}})}var Gn=function(e,t){he.IsCallable(E.Reflect[e])?l((function(){return E.Reflect[e](1),E.Reflect[e](NaN),E.Reflect[e](!0),!0}))&&ie(E.Reflect,e,t):b(E.Reflect,e,t)};Object.keys(Fn).forEach((function(e){Gn(e,Fn[e])}));var Wn=E.Reflect.getPrototypeOf;if(h&&Wn&&"getPrototypeOf"!==Wn.name&&ie(E.Reflect,"getPrototypeOf",(function(e){return r(Wn,E.Reflect,e)})),E.Reflect.setPrototypeOf&&l((function(){return E.Reflect.setPrototypeOf(1,{}),!0}))&&ie(E.Reflect,"setPrototypeOf",Fn.setPrototypeOf),E.Reflect.defineProperty&&(l((function(){var e=!E.Reflect.defineProperty(1,"test",{value:1}),t="function"!=typeof Object.preventExtensions||!E.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t}))||ie(E.Reflect,"defineProperty",Fn.defineProperty)),E.Reflect.construct&&(l((function(){var e=function(){};return E.Reflect.construct((function(){}),[],e)instanceof e}))||ie(E.Reflect,"construct",Fn.construct)),"Invalid Date"!==String(new Date(NaN))){var Zn=Date.prototype.toString,Vn=function(){var e=+this;return e!=e?"Invalid Date":he.Call(Zn,this)};ie(Date.prototype,"toString",Vn)}var Jn={anchor:function(e){return he.CreateHTML(this,"a","name",e)},big:function(){return he.CreateHTML(this,"big","","")},blink:function(){return he.CreateHTML(this,"blink","","")},bold:function(){return he.CreateHTML(this,"b","","")},fixed:function(){return he.CreateHTML(this,"tt","","")},fontcolor:function(e){return he.CreateHTML(this,"font","color",e)},fontsize:function(e){return he.CreateHTML(this,"font","size",e)},italics:function(){return he.CreateHTML(this,"i","","")},link:function(e){return he.CreateHTML(this,"a","href",e)},small:function(){return he.CreateHTML(this,"small","","")},strike:function(){return he.CreateHTML(this,"strike","","")},sub:function(){return he.CreateHTML(this,"sub","","")},sup:function(){return he.CreateHTML(this,"sup","","")}};d(Object.keys(Jn),(function(e){var t=String.prototype[e],n=!1;if(he.IsCallable(t)){var o=r(t,"",' " '),i=P([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else n=!0;n&&ie(String.prototype,e,Jn[e])}));var Kn=function(){if(!ae)return!1;var e="object"==typeof JSON&&"function"==typeof JSON.stringify?JSON.stringify:null;if(!e)return!1;if(void 0!==e(J()))return!0;if("[null]"!==e([J()]))return!0;var t={a:J()};return t[J()]=!0,"{}"!==e(t)}(),Xn=l((function(){return!ae||"{}"===JSON.stringify(Object(J()))&&"[{}]"===JSON.stringify([Object(J())])}));if(Kn||!Xn){var Yn=JSON.stringify;ie(JSON,"stringify",(function(e){if("symbol"!=typeof e){var t;arguments.length>1&&(t=arguments[1]);var n=[e];if(i(t))n.push(t);else{var o=he.IsCallable(t)?t:null,a=function(e,t){var n=o?r(o,this,e,t):t;if("symbol"!=typeof n)return oe.symbol(n)?zt({})(n):n};n.push(a)}return arguments.length>2&&n.push(arguments[2]),Yn.apply(this,n)}}))}return E})?i.call(t,r,t,e):i)||(e.exports=a)}).call(this,r(3),r(13))},function(e,t){var r,n,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(e){n=a}}();var u,l=[],c=!1,f=-1;function p(){c&&u&&(c=!1,u.length?l=u.concat(l):f=-1,l.length&&h())}function h(){if(!c){var e=s(p);c=!0;for(var t=l.length;t;){for(u=l,l=[];++f<t;)u&&u[f].run();f=-1,t=l.length}u=null,c=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===a||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function y(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];l.push(new d(e,t)),1!==l.length||c||s(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=y,o.addListener=y,o.once=y,o.off=y,o.removeListener=y,o.removeAllListeners=y,o.emit=y,o.prependListener=y,o.prependOnceListener=y,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,r){const n=r(15),o=r(16),i=r(2),a=r(7),s=r(6),u=r(5),{merge:l,checkSanitizeDeprecation:c,escape:f}=r(0),{getDefaults:p,changeDefaults:h,defaults:d}=r(1);function y(e,t,r){if(null==e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if(r||"function"==typeof t){r||(r=t,t=null),t=l({},y.defaults,t||{}),c(t);const i=t.highlight;let a,s,u=0;try{a=n.lex(e,t)}catch(e){return r(e)}s=a.length;const f=function(e){if(e)return t.highlight=i,r(e);let n;try{n=o.parse(a,t)}catch(t){e=t}return t.highlight=i,e?r(e):r(null,n)};if(!i||i.length<3)return f();if(delete t.highlight,!s)return f();for(;u<a.length;u++)!function(e){"code"!==e.type?--s||f():i(e.text,e.lang,(function(t,r){return t?f(t):null==r||r===e.text?--s||f():(e.text=r,e.escaped=!0,void(--s||f()))}))}(a[u])}else try{return t=l({},y.defaults,t||{}),c(t),o.parse(n.lex(e,t),t)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",(t||y.defaults).silent)return"<p>An error occurred:</p><pre>"+f(e.message+"",!0)+"</pre>";throw e}}y.options=y.setOptions=function(e){return l(y.defaults,e),h(y.defaults),y},y.getDefaults=p,y.defaults=d,y.Parser=o,y.parser=o.parse,y.Renderer=i,y.TextRenderer=a,y.Lexer=n,y.lexer=n.lex,y.InlineLexer=s,y.inlineLexer=s.output,y.Slugger=u,y.parse=y,e.exports=y},function(e,t,r){const{defaults:n}=r(1),{block:o}=r(4),{rtrim:i,splitCells:a,escape:s}=r(0);e.exports=class e{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||n,this.rules=o.normal,this.options.pedantic?this.rules=o.pedantic:this.options.gfm&&(this.rules=o.gfm)}static get rules(){return o}static lex(t,r){return new e(r).lex(t)}lex(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.token(e,!0)}token(e,t){let r,n,u,l,c,f,p,h,d,y,g,m,b,v,w,O;for(e=e.replace(/^ +$/gm,"");e;)if((u=this.rules.newline.exec(e))&&(e=e.substring(u[0].length),u[0].length>1&&this.tokens.push({type:"space"})),u=this.rules.code.exec(e)){const t=this.tokens[this.tokens.length-1];e=e.substring(u[0].length),t&&"paragraph"===t.type?t.text+="\n"+u[0].trimRight():(u=u[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?u:i(u,"\n")}))}else if(u=this.rules.fences.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"code",lang:u[2]?u[2].trim():u[2],text:u[3]||""});else if(u=this.rules.heading.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"heading",depth:u[1].length,text:u[2]});else if((u=this.rules.nptable.exec(e))&&(f={type:"table",header:a(u[1].replace(/^ *| *\| *$/g,"")),align:u[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:u[3]?u[3].replace(/\n$/,"").split("\n"):[]},f.header.length===f.align.length)){for(e=e.substring(u[0].length),g=0;g<f.align.length;g++)/^ *-+: *$/.test(f.align[g])?f.align[g]="right":/^ *:-+: *$/.test(f.align[g])?f.align[g]="center":/^ *:-+ *$/.test(f.align[g])?f.align[g]="left":f.align[g]=null;for(g=0;g<f.cells.length;g++)f.cells[g]=a(f.cells[g],f.header.length);this.tokens.push(f)}else if(u=this.rules.hr.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"hr"});else if(u=this.rules.blockquote.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"blockquote_start"}),u=u[0].replace(/^ *> ?/gm,""),this.token(u,t),this.tokens.push({type:"blockquote_end"});else if(u=this.rules.list.exec(e)){for(e=e.substring(u[0].length),l=u[2],v=l.length>1,p={type:"list_start",ordered:v,start:v?+l:"",loose:!1},this.tokens.push(p),u=u[0].match(this.rules.item),h=[],r=!1,b=u.length,g=0;g<b;g++)f=u[g],y=f.length,f=f.replace(/^ *([*+-]|\d+\.) */,""),~f.indexOf("\n ")&&(y-=f.length,f=this.options.pedantic?f.replace(/^ {1,4}/gm,""):f.replace(new RegExp("^ {1,"+y+"}","gm"),"")),g!==b-1&&(c=o.bullet.exec(u[g+1])[0],(l.length>1?1===c.length:c.length>1||this.options.smartLists&&c!==l)&&(e=u.slice(g+1).join("\n")+e,g=b-1)),n=r||/\n\n(?!\s*$)/.test(f),g!==b-1&&(r="\n"===f.charAt(f.length-1),n||(n=r)),n&&(p.loose=!0),w=/^\[[ xX]\] /.test(f),O=void 0,w&&(O=" "!==f[1],f=f.replace(/^\[[ xX]\] +/,"")),d={type:"list_item_start",task:w,checked:O,loose:n},h.push(d),this.tokens.push(d),this.token(f,!1),this.tokens.push({type:"list_item_end"});if(p.loose)for(b=h.length,g=0;g<b;g++)h[g].loose=!0;this.tokens.push({type:"list_end"})}else if(u=this.rules.html.exec(e))e=e.substring(u[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===u[1]||"script"===u[1]||"style"===u[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(u[0]):s(u[0]):u[0]});else if(t&&(u=this.rules.def.exec(e)))e=e.substring(u[0].length),u[3]&&(u[3]=u[3].substring(1,u[3].length-1)),m=u[1].toLowerCase().replace(/\s+/g," "),this.tokens.links[m]||(this.tokens.links[m]={href:u[2],title:u[3]});else if((u=this.rules.table.exec(e))&&(f={type:"table",header:a(u[1].replace(/^ *| *\| *$/g,"")),align:u[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:u[3]?u[3].replace(/\n$/,"").split("\n"):[]},f.header.length===f.align.length)){for(e=e.substring(u[0].length),g=0;g<f.align.length;g++)/^ *-+: *$/.test(f.align[g])?f.align[g]="right":/^ *:-+: *$/.test(f.align[g])?f.align[g]="center":/^ *:-+ *$/.test(f.align[g])?f.align[g]="left":f.align[g]=null;for(g=0;g<f.cells.length;g++)f.cells[g]=a(f.cells[g].replace(/^ *\| *| *\| *$/g,""),f.header.length);this.tokens.push(f)}else if(u=this.rules.lheading.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"heading",depth:"="===u[2].charAt(0)?1:2,text:u[1]});else if(t&&(u=this.rules.paragraph.exec(e)))e=e.substring(u[0].length),this.tokens.push({type:"paragraph",text:"\n"===u[1].charAt(u[1].length-1)?u[1].slice(0,-1):u[1]});else if(u=this.rules.text.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"text",text:u[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens}}},function(e,t,r){const n=r(2),o=r(5),i=r(6),a=r(7),{defaults:s}=r(1),{merge:u,unescape:l}=r(0);e.exports=class e{constructor(e){this.tokens=[],this.token=null,this.options=e||s,this.options.renderer=this.options.renderer||new n,this.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new o}static parse(t,r){return new e(r).parse(t)}parse(e){this.inline=new i(e.links,this.options),this.inlineText=new i(e.links,u({},this.options,{renderer:new a})),this.tokens=e.reverse();let t="";for(;this.next();)t+=this.tok();return t}next(){return this.token=this.tokens.pop(),this.token}peek(){return this.tokens[this.tokens.length-1]||0}parseText(){let e=this.token.text;for(;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)}tok(){let e="";switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,l(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":{let t,r,n,o,i="";for(n="",t=0;t<this.token.header.length;t++)n+=this.renderer.tablecell(this.inline.output(this.token.header[t]),{header:!0,align:this.token.align[t]});for(i+=this.renderer.tablerow(n),t=0;t<this.token.cells.length;t++){for(r=this.token.cells[t],n="",o=0;o<r.length;o++)n+=this.renderer.tablecell(this.inline.output(r[o]),{header:!1,align:this.token.align[o]});e+=this.renderer.tablerow(n)}return this.renderer.table(i,e)}case"blockquote_start":for(e="";"blockquote_end"!==this.next().type;)e+=this.tok();return this.renderer.blockquote(e);case"list_start":{e="";const t=this.token.ordered,r=this.token.start;for(;"list_end"!==this.next().type;)e+=this.tok();return this.renderer.list(e,t,r)}case"list_item_start":{e="";const t=this.token.loose,r=this.token.checked,n=this.token.task;if(this.token.task)if(t)if("text"===this.peek().type){const e=this.peek();e.text=this.renderer.checkbox(r)+" "+e.text}else this.tokens.push({type:"text",text:this.renderer.checkbox(r)});else e+=this.renderer.checkbox(r);for(;"list_item_end"!==this.next().type;)e+=t||"text"!==this.token.type?this.tok():this.parseText();return this.renderer.listitem(e,n,r)}case"html":return this.renderer.html(this.token.text);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText());default:{const e='Token with "'+this.token.type+'" type was not found.';if(!this.options.silent)throw new Error(e);console.log(e)}}}}},function(e,t,r){(function(r){var n,o;window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,r=(this.document||this.ownerDocument).querySelectorAll(e),n=this;do{for(t=r.length;0<=--t&&r.item(t)!==n;);}while(t<0&&(n=n.parentElement));return n}),function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var r=document.createEvent("CustomEvent");return r.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r}"function"!=typeof window.CustomEvent&&(e.prototype=window.Event.prototype,window.CustomEvent=e)}(),function(){for(var e=0,t=["ms","moz","webkit","o"],r=0;r<t.length&&!window.requestAnimationFrame;++r)window.requestAnimationFrame=window[t[r]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[r]+"CancelAnimationFrame"]||window[t[r]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t,r){var n=(new Date).getTime(),o=Math.max(0,16-(n-e)),i=window.setTimeout((function(){t(n+o)}),o);return e=n+o,i}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}(),o=void 0!==r?r:"undefined"!=typeof window?window:this,void 0===(n=function(){return function(e){"use strict";var t={ignore:"[data-scroll-ignore]",header:null,topOnEmptyHash:!0,speed:500,speedAsDuration:!1,durationMax:null,durationMin:null,clip:!0,offset:0,easing:"easeInOutCubic",customEasing:null,updateURL:!0,popstate:!0,emitEvents:!0},r=function(){var e={};return Array.prototype.forEach.call(arguments,(function(t){for(var r in t){if(!t.hasOwnProperty(r))return;e[r]=t[r]}})),e},n=function(e){"#"===e.charAt(0)&&(e=e.substr(1));for(var t,r=String(e),n=r.length,o=-1,i="",a=r.charCodeAt(0);++o<n;){if(0===(t=r.charCodeAt(o)))throw new InvalidCharacterError("Invalid character: the input contains U+0000.");i+=1<=t&&t<=31||127==t||0===o&&48<=t&&t<=57||1===o&&48<=t&&t<=57&&45===a?"\\"+t.toString(16)+" ":128<=t||45===t||95===t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122?r.charAt(o):"\\"+r.charAt(o)}return"#"+i},o=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},i=function(t,r,n,o){if(r.emitEvents&&"function"==typeof e.CustomEvent){var i=new CustomEvent(t,{bubbles:!0,detail:{anchor:n,toggle:o}});document.dispatchEvent(i)}};return function(a,s){var u,l,c,f,p={cancelScroll:function(e){cancelAnimationFrame(f),f=null,e||i("scrollCancel",u)},animateScroll:function(n,a,s){p.cancelScroll();var l=r(u||t,s||{}),h="[object Number]"===Object.prototype.toString.call(n),d=h||!n.tagName?null:n;if(h||d){var y=e.pageYOffset;l.header&&!c&&(c=document.querySelector(l.header));var g,m,b,v,w,O,S,x,T=function(t){return t?(r=t,parseInt(e.getComputedStyle(r).height,10)+t.offsetTop):0;var r}(c),j=h?n:function(t,r,n,i){var a=0;if(t.offsetParent)for(;a+=t.offsetTop,t=t.offsetParent;);return a=Math.max(a-r-n,0),i&&(a=Math.min(a,o()-e.innerHeight)),a}(d,T,parseInt("function"==typeof l.offset?l.offset(n,a):l.offset,10),l.clip),E=j-y,A=o(),_=0,k=(g=E,b=(m=l).speedAsDuration?m.speed:Math.abs(g/1e3*m.speed),m.durationMax&&b>m.durationMax?m.durationMax:m.durationMin&&b<m.durationMin?m.durationMin:parseInt(b,10)),P=function(t){var r,o,s;v||(v=t),_+=t-v,O=y+E*(o=w=1<(w=0===k?0:_/k)?1:w,"easeInQuad"===(r=l).easing&&(s=o*o),"easeOutQuad"===r.easing&&(s=o*(2-o)),"easeInOutQuad"===r.easing&&(s=o<.5?2*o*o:(4-2*o)*o-1),"easeInCubic"===r.easing&&(s=o*o*o),"easeOutCubic"===r.easing&&(s=--o*o*o+1),"easeInOutCubic"===r.easing&&(s=o<.5?4*o*o*o:(o-1)*(2*o-2)*(2*o-2)+1),"easeInQuart"===r.easing&&(s=o*o*o*o),"easeOutQuart"===r.easing&&(s=1- --o*o*o*o),"easeInOutQuart"===r.easing&&(s=o<.5?8*o*o*o*o:1-8*--o*o*o*o),"easeInQuint"===r.easing&&(s=o*o*o*o*o),"easeOutQuint"===r.easing&&(s=1+--o*o*o*o*o),"easeInOutQuint"===r.easing&&(s=o<.5?16*o*o*o*o*o:1+16*--o*o*o*o*o),r.customEasing&&(s=r.customEasing(o)),s||o),e.scrollTo(0,Math.floor(O)),function(t,r){var o,s,u,c=e.pageYOffset;if(t==r||c==r||(y<r&&e.innerHeight+c)>=A)return p.cancelScroll(!0),s=r,u=h,0===(o=n)&&document.body.focus(),u||(o.focus(),document.activeElement!==o&&(o.setAttribute("tabindex","-1"),o.focus(),o.style.outline="none"),e.scrollTo(0,s)),i("scrollStop",l,n,a),!(f=v=null)}(O,j)||(f=e.requestAnimationFrame(P),v=t)};0===e.pageYOffset&&e.scrollTo(0,0),S=n,x=l,h||history.pushState&&x.updateURL&&history.pushState({smoothScroll:JSON.stringify(x),anchor:S.id},document.title,S===document.documentElement?"#top":"#"+S.id),"matchMedia"in e&&e.matchMedia("(prefers-reduced-motion)").matches?e.scrollTo(0,Math.floor(j)):(i("scrollStart",l,n,a),p.cancelScroll(!0),e.requestAnimationFrame(P))}}},h=function(t){if(!t.defaultPrevented&&!(0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey)&&"closest"in t.target&&(l=t.target.closest(a))&&"a"===l.tagName.toLowerCase()&&!t.target.closest(u.ignore)&&l.hostname===e.location.hostname&&l.pathname===e.location.pathname&&/#/.test(l.href)){var r,o=n(l.hash);if("#"===o){if(!u.topOnEmptyHash)return;r=document.documentElement}else r=document.querySelector(o);(r=r||"#top"!==o?r:document.documentElement)&&(t.preventDefault(),function(t){if(history.replaceState&&t.updateURL&&!history.state){var r=e.location.hash;r=r||"",history.replaceState({smoothScroll:JSON.stringify(t),anchor:r||e.pageYOffset},document.title,r||e.location.href)}}(u),p.animateScroll(r,l))}},d=function(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(u)){var t=history.state.anchor;"string"==typeof t&&t&&!(t=document.querySelector(n(history.state.anchor)))||p.animateScroll(t,null,{updateURL:!1})}};return p.destroy=function(){u&&(document.removeEventListener("click",h,!1),e.removeEventListener("popstate",d,!1),p.cancelScroll(),f=c=l=u=null)},function(){if(!("querySelector"in document&&"addEventListener"in e&&"requestAnimationFrame"in e&&"closest"in e.Element.prototype))throw"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.";p.destroy(),u=r(t,s||{}),c=u.header?document.querySelector(u.header):null,document.addEventListener("click",h,!1),u.updateURL&&u.popstate&&e.addEventListener("popstate",d,!1)}(),p}}(o)}.apply(t,[]))||(e.exports=n)}).call(this,r(3))},function(e,t,r){},function(e,t,r){"use strict";r.r(t),r.d(t,"Headers",(function(){return h})),r.d(t,"Request",(function(){return w})),r.d(t,"Response",(function(){return S})),r.d(t,"DOMException",(function(){return T})),r.d(t,"fetch",(function(){return j}));var n="URLSearchParams"in self,o="Symbol"in self&&"iterator"in Symbol,i="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(e){return!1}}(),a="FormData"in self,s="ArrayBuffer"in self;if(s)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],l=ArrayBuffer.isView||function(e){return e&&u.indexOf(Object.prototype.toString.call(e))>-1};function c(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function f(e){return"string"!=typeof e&&(e=String(e)),e}function p(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return o&&(t[Symbol.iterator]=function(){return t}),t}function h(e){this.map={},e instanceof h?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function d(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function y(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function g(e){var t=new FileReader,r=y(t);return t.readAsArrayBuffer(e),r}function m(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function b(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:i&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:a&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:n&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():s&&i&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=m(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(e)||l(e))?this._bodyArrayBuffer=m(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var e=d(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?d(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(g)}),this.text=function(){var e,t,r,n=d(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,r=y(t),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n<t.length;n++)r[n]=String.fromCharCode(t[n]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},a&&(this.formData=function(){return this.text().then(O)}),this.json=function(){return this.text().then(JSON.parse)},this}h.prototype.append=function(e,t){e=c(e),t=f(t);var r=this.map[e];this.map[e]=r?r+", "+t:t},h.prototype.delete=function(e){delete this.map[c(e)]},h.prototype.get=function(e){return e=c(e),this.has(e)?this.map[e]:null},h.prototype.has=function(e){return this.map.hasOwnProperty(c(e))},h.prototype.set=function(e,t){this.map[c(e)]=f(t)},h.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},h.prototype.keys=function(){var e=[];return this.forEach((function(t,r){e.push(r)})),p(e)},h.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),p(e)},h.prototype.entries=function(){var e=[];return this.forEach((function(t,r){e.push([r,t])})),p(e)},o&&(h.prototype[Symbol.iterator]=h.prototype.entries);var v=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function w(e,t){var r,n,o=(t=t||{}).body;if(e instanceof w){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new h(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,o||null==e._bodyInit||(o=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new h(t.headers)),this.method=(r=t.method||this.method||"GET",n=r.toUpperCase(),v.indexOf(n)>-1?n:r),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function O(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(o))}})),t}function S(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new h(t.headers),this.url=t.url||"",this._initBody(e)}w.prototype.clone=function(){return new w(this,{body:this._bodyInit})},b.call(w.prototype),b.call(S.prototype),S.prototype.clone=function(){return new S(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},S.error=function(){var e=new S(null,{status:0,statusText:""});return e.type="error",e};var x=[301,302,303,307,308];S.redirect=function(e,t){if(-1===x.indexOf(t))throw new RangeError("Invalid status code");return new S(null,{status:t,headers:{location:e}})};var T=self.DOMException;try{new T}catch(e){(T=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack}).prototype=Object.create(Error.prototype),T.prototype.constructor=T}function j(e,t){return new Promise((function(r,n){var o=new w(e,t);if(o.signal&&o.signal.aborted)return n(new T("Aborted","AbortError"));var a=new XMLHttpRequest;function s(){a.abort()}a.onload=function(){var e,t,n={status:a.status,statusText:a.statusText,headers:(e=a.getAllResponseHeaders()||"",t=new h,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();t.append(n,o)}})),t)};n.url="responseURL"in a?a.responseURL:n.headers.get("X-Request-URL");var o="response"in a?a.response:a.responseText;r(new S(o,n))},a.onerror=function(){n(new TypeError("Network request failed"))},a.ontimeout=function(){n(new TypeError("Network request failed"))},a.onabort=function(){n(new T("Aborted","AbortError"))},a.open(o.method,o.url,!0),"include"===o.credentials?a.withCredentials=!0:"omit"===o.credentials&&(a.withCredentials=!1),"responseType"in a&&i&&(a.responseType="blob"),o.headers.forEach((function(e,t){a.setRequestHeader(t,e)})),o.signal&&(o.signal.addEventListener("abort",s),a.onreadystatechange=function(){4===a.readyState&&o.signal.removeEventListener("abort",s)}),a.send(void 0===o._bodyInit?null:o._bodyInit)}))}j.polyfill=!0,self.fetch||(self.fetch=j,self.Headers=h,self.Request=w,self.Response=S)},function(e,t,r){},function(e,t,r){"use strict";r.r(t);var n=Object.defineProperty;function o(e,t,r){var o=r.configurable,i=r.enumerable,a=r.initializer,s=r.value;return{configurable:o,enumerable:i,get:function(){if(this!==e){var r=a?a.call(this):s;return n(this,t,{configurable:o,enumerable:i,writable:!0,value:r}),r}},set:E(t)}}function i(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(o,t)}var a,s,u,l,c,f,p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function h(e,t,r,n){r&&Object.defineProperty(e,t,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}function d(e,t,r,n,o){var i={};return Object.keys(n).forEach((function(e){i[e]=n[e]})),i.enumerable=!!i.enumerable,i.configurable=!!i.configurable,("value"in i||i.initializer)&&(i.writable=!0),i=r.slice().reverse().reduce((function(r,n){return n(e,t,r)||r}),i),o&&void 0!==i.initializer&&(i.value=i.initializer?i.initializer.call(o):void 0,i.initializer=void 0),void 0===i.initializer&&(Object.defineProperty(e,t,i),i=null),i}function y(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var g=Object.defineProperty,m=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyNames,v=Object.getOwnPropertySymbols;function w(e,t){return function(e){if(!e||!e.hasOwnProperty)return!1;for(var t=["value","initializer","get","set"],r=0,n=t.length;r<n;r++)if(e.hasOwnProperty(t[r]))return!0;return!1}(t[t.length-1])?e.apply(void 0,y(t).concat([[]])):function(){return e.apply(void 0,y(Array.prototype.slice.call(arguments)).concat([t]))}}var O=(s=d((a=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),h(this,"debounceTimeoutIds",s,this),h(this,"throttleTimeoutIds",u,this),h(this,"throttlePreviousTimestamps",l,this),h(this,"throttleTrailingArgs",c,this),h(this,"profileLastRan",f,this)}).prototype,"debounceTimeoutIds",[i],{enumerable:!0,initializer:function(){return{}}}),u=d(a.prototype,"throttleTimeoutIds",[i],{enumerable:!0,initializer:function(){return{}}}),l=d(a.prototype,"throttlePreviousTimestamps",[i],{enumerable:!0,initializer:function(){return{}}}),c=d(a.prototype,"throttleTrailingArgs",[i],{enumerable:!0,initializer:function(){return null}}),f=d(a.prototype,"profileLastRan",[i],{enumerable:!0,initializer:function(){return null}}),a),S="function"==typeof Symbol?Symbol("__core_decorators__"):"__core_decorators__";function x(e){return!1===e.hasOwnProperty(S)&&g(e,S,{value:new O}),e[S]}var T=v?function(e){return b(e).concat(v(e))}:b;function j(e){var t={};return T(e).forEach((function(r){return t[r]=m(e,r)})),t}function E(e){return function(t){return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t}),t}}function A(e,t){return e.bind?e.bind(t):function(){return e.apply(t,arguments)}}var _="object"===("undefined"==typeof console?"undefined":p(console))&&console&&"function"==typeof console.warn?A(console.warn,console):function(){},k={};function P(e){!0!==k[e]&&(k[e]=!0,_("DEPRECATION: "+e))}var I="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();var M=/^function ([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?(\([^\)]*\))[\s\S]+$/,R=function(){function e(t,r,n,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.parentKlass=t,this.childKlass=r,this.parentDescriptor=n,this.childDescriptor=o}return C(e,[{key:"_getTopic",value:function(e){return void 0===e?null:"value"in e?e.value:"get"in e?e.get:"set"in e?e.set:void 0}},{key:"_extractTopicSignature",value:function(e){switch(void 0===e?"undefined":I(e)){case"function":return this._extractFunctionSignature(e);default:return this.key}}},{key:"_extractFunctionSignature",value:function(e){var t=this;return e.toString().replace(M,(function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.key,n=arguments[2];return r+n}))}},{key:"key",get:function(){return this.childDescriptor.key}},{key:"parentNotation",get:function(){return this.parentKlass.constructor.name+"#"+this.parentPropertySignature}},{key:"childNotation",get:function(){return this.childKlass.constructor.name+"#"+this.childPropertySignature}},{key:"parentTopic",get:function(){return this._getTopic(this.parentDescriptor)}},{key:"childTopic",get:function(){return this._getTopic(this.childDescriptor)}},{key:"parentPropertySignature",get:function(){return this._extractTopicSignature(this.parentTopic)}},{key:"childPropertySignature",get:function(){return this._extractTopicSignature(this.childTopic)}}]),C(e,[{key:"assert",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";!0!==e&&this.error("{child} does not properly override {parent}"+t)}},{key:"error",value:function(e){var t=this;throw e=e.replace("{parent}",(function(e){return t.parentNotation})).replace("{child}",(function(e){return t.childNotation})),new SyntaxError(e)}}]),e}();function N(e){return e.hasOwnProperty("value")?"data":e.hasOwnProperty("get")||e.hasOwnProperty("set")?"accessor":"data"}function L(e,t,r){r.assert(e.length===t.length)}function D(e,t,r){var n=N(e),o=N(t);switch(n!==o&&r.error('descriptor types do not match. {parent} is "'+n+'", {child} is "'+o+'"'),o){case"data":!function(e,t,r){var n=I(e.value),o=I(t.value);switch("undefined"===n&&"undefined"===o&&r.error("descriptor values are both undefined. (class properties are are not currently supported)'"),n!==o&&("function"===o&&void 0===n||void 0!==n)&&r.error('value types do not match. {parent} is "'+n+'", {child} is "'+o+'"'),o){case"function":L(e.value,t.value,r);break;default:r.error('Unexpected error. Please file a bug with: {parent} is "'+n+'", {child} is "'+o+'"')}}(e,t,r);break;case"accessor":!function(e,t,r){var n="function"==typeof e.get,o="function"==typeof t.get,i="function"==typeof e.set,a="function"==typeof t.set;(n||o)&&(!n&&i&&r.error("{parent} is setter but {child} is getter"),!o&&a&&r.error("{parent} is getter but {child} is setter"),L(e.get,t.get,r)),(i||a)&&(!i&&n&&r.error("{parent} is getter but {child} is setter"),!a&&o&&r.error("{parent} is setter but {child} is getter"),L(e.set,t.set,r))}(e,t,r)}}var z=[function(e){return e.toLowerCase()},function(e){return e.toUpperCase()},function(e){return e+"s"},function(e){return e.slice(0,-1)},function(e){return e.slice(1,e.length)}];function F(e,t,r){r.key=t;var n=Object.getPrototypeOf(e),o=Object.getOwnPropertyDescriptor(n,t),i=new R(n,e,o,r);if(void 0===o){var a=function(e,t){for(var r=0,n=z.length;r<n;r++){var o=(0,z[r])(t);if(o in e)return o}return null}(n,t),s=a?'\n\n Did you mean "'+a+'"?':"";i.error("No descriptor matching {child} was found on the prototype chain."+s)}return D(o,r,i),r}function q(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(F,t)}var $=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},H=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function U(e,t,r,n){var o=H(n,2),i=o[0],a=void 0===i?"This function will be removed in future versions.":i,s=o[1],u=void 0===s?{}:s;if("function"!=typeof r.value)throw new SyntaxError("Only functions can be marked as deprecated");var l=e.constructor.name+"#"+t;return u.url&&(a+="\n\n See "+u.url+" for more details.\n\n"),$({},r,{value:function(){return _("DEPRECATION "+l+": "+a),r.value.apply(this,arguments)}})}function B(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(U,t)}var G=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},W="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function Z(){}function V(e,t,r){if("object"===("undefined"==typeof console?"undefined":W(console))){var n=console.warn;console.warn=Z;var o=t.apply(e,r);return console.warn=n,o}return t.apply(e,r)}function J(e,t,r){return G({},r,{value:function(){return V(this,r.value,arguments)}})}function K(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(J,t)}var X=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};function Y(e,t){return t===Object(t)?t:e[t]||(e[t]={})}function Q(e,t,r,n,o){var i=t.apply(e,r);return n[o]=i,i}function ee(e,t,r){var n=function(e){var t=void 0,r=void 0;return e.value?(t=e.value,r="value"):e.get?(t=e.get,r="get"):e.set&&(t=e.set,r="set"),{fn:t,wrapKey:r}}(r),o=n.fn,i=n.wrapKey,a=new WeakMap,s=Object.create(null),u=Object.create(null),l=0;return X({},r,function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}({},i,(function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n="0",i=0,c=t.length;i<c;i++){var f=t[i],p=Y(u,f),h=a.get(p);void 0===h&&(h=++l,a.set(p,h)),n+=h}return s[n]||Q(this,o,arguments,s,n)})))}function te(){P("@memoize is deprecated and will be removed shortly. Use @memoize from lodash-decorators.\n\n https://www.npmjs.com/package/lodash-decorators");for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(ee,t)}function re(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var ne=Object.defineProperty,oe=Object.getPrototypeOf,ie=void 0;function ae(e){for(var t=j(e.prototype),r=T(t),n=0,o=r.length;n<o;n++){var i=r[n],a=t[i];"function"==typeof a.value&&"constructor"!==i&&ne(e.prototype,i,se(e.prototype,i,a))}}function se(e,t,r){var n=r.value,o=r.configurable,i=r.enumerable;if("function"!=typeof n)throw new SyntaxError("@autobind can only be used on functions, not: "+n);var a=e.constructor;return{configurable:o,enumerable:i,get:function(){if(this===e)return n;if(this.constructor!==a&&oe(this).constructor===a)return n;if(this.constructor!==a&&t in this.constructor.prototype)return function(e,t){if("undefined"==typeof WeakMap)throw new Error("Using @autobind on "+t.name+"() requires WeakMap support due to its use of super."+t.name+"()\n See https://github.com/jayphelps/core-decorators.js/issues/20");ie||(ie=new WeakMap),!1===ie.has(e)&&ie.set(e,new WeakMap);var r=ie.get(e);return!1===r.has(t)&&r.set(t,A(t,e)),r.get(t)}(this,n);var r=A(n,this);return ne(this,t,{configurable:!0,writable:!0,enumerable:!1,value:r}),r},set:E(t)}}function ue(e){return 1===e.length?ae.apply(void 0,re(e)):se.apply(void 0,re(e))}function le(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return 0===t.length?function(){return ue(arguments)}:ue(t)}function ce(e,t,r){return r.writable=!1,r}function fe(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(ce,t)}function pe(e,t,r){return r.enumerable=!0,r}function he(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(pe,t)}function de(e,t,r){return r.enumerable=!1,r}function ye(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(de,t)}function ge(e,t,r){return r.configurable=!1,r}function me(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(ge,t)}var be=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ve=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function we(e,t,r,n){var o=ve(n,2),i=o[0],a=void 0===i?300:i,s=o[1],u=void 0!==s&&s,l=r.value;if("function"!=typeof l)throw new SyntaxError("Only functions can be debounced");return be({},r,{value:function(){var e=this,r=x(this),n=r.debounceTimeoutIds,o=n[t],i=u&&!o,s=arguments;clearTimeout(o),n[t]=setTimeout((function(){delete n[t],u||l.apply(e,s)}),a),i&&l.apply(this,s)}})}function Oe(){P("@debounce is deprecated and will be removed shortly. Use @debounce from lodash-decorators.\n\n https://www.npmjs.com/package/lodash-decorators");for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(we,t)}var Se=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},xe=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function Te(e,t,r,n){var o=xe(n,2),i=o[0],a=void 0===i?300:i,s=o[1],u=void 0===s?{}:s,l=r.value;if("function"!=typeof l)throw new SyntaxError("Only functions can be throttled");return!1!==u.leading&&(u.leading=!0),!1!==u.trailing&&(u.trailing=!0),Se({},r,{value:function(){var e=this,r=x(this),n=r.throttleTimeoutIds,o=r.throttlePreviousTimestamps,i=n[t],s=o[t]||0,c=Date.now();u.trailing&&(r.throttleTrailingArgs=arguments),s||!1!==u.leading||(s=c);var f=a-(c-s);f<=0?(clearTimeout(i),delete n[t],o[t]=c,l.apply(this,arguments)):!i&&u.trailing&&(n[t]=setTimeout((function(){o[t]=!1===u.leading?0:Date.now(),delete n[t],l.apply(e,r.throttleTrailingArgs),r.throttleTrailingArgs=null}),f))}})}function je(){P("@throttle is deprecated and will be removed shortly. Use @throttle from lodash-decorators.\n\n https://www.npmjs.com/package/lodash-decorators");for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(Te,t)}var Ee=Object.defineProperty;function Ae(e,t,r,n){var o,i=(o=n,Array.isArray(o)?o:Array.from(o)),a=i[0],s=i.slice(1),u=r.configurable,l=r.enumerable,c=r.writable,f=r.get,p=r.set,h=r.value,d=!!f;return{configurable:u,enumerable:l,get:function(){var e=d?f.call(this):h,r=a.call.apply(a,[this,e].concat(function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}(s)));if(d)return r;var n={configurable:u,enumerable:l};return n.value=r,n.writable=c,Ee(this,t,n),r},set:d?p:E()}}function _e(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(Ae,t)}var ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pe=Object.defineProperty,Ie=Object.getPrototypeOf;function Ce(e,t){if(r=e,"[object Symbol]"===Object.prototype.toString.call(r)&&"object"===(void 0===r?"undefined":ke(r))){do{if(t===Object.prototype)return void 0!==t[e];if(t.hasOwnProperty(e))return!0}while(t=Ie(t));return!1}return e in t;var r}function Me(e,t){if(!t.length)throw new SyntaxError("@mixin() class "+e.name+" requires at least one mixin as an argument");for(var r=0,n=t.length;r<n;r++)for(var o=j(t[r]),i=T(o),a=0,s=i.length;a<s;a++){var u=i[a];Ce(u,e.prototype)||Pe(e.prototype,u,o[u])}}function Re(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return P("@mixin is deprecated and will be removed shortly. Use @mixin from lodash-decorators.\n\n https://www.npmjs.com/package/lodash-decorators"),"function"==typeof t[0]?Me(t[0],[]):function(e){return Me(e,t)}}var Ne=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Le=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},De={},ze={time:console.time?console.time.bind(console):function(e){De[e]=new Date},timeEnd:console.timeEnd?console.timeEnd.bind(console):function(e){var t=new Date-De[e];delete De[e],console.log(e+": "+t+"ms")}},Fe=0;function qe(e,t,r,n){var o=Le(n,2),i=o[0],a=void 0===i?null:i,s=o[1],u=void 0===s?ze:s,l=r.value;if(null===a&&(a=e.constructor.name+"."+t),"function"!=typeof l)throw new SyntaxError("@time can only be used on functions, not: "+l);return Ne({},r,{value:function(){var e=a+"-"+Fe;Fe++,u.time(e);try{return l.apply(this,arguments)}finally{u.timeEnd(e)}}})}function $e(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(qe,t)}var He=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ue=Object.getPrototypeOf,Be=Object.getOwnPropertyDescriptor;function Ge(e,t,r){var n=Ue(e),o=Be(n,t);return He({},o,{value:r.value,initializer:r.initializer,get:r.get||o.get,set:r.set||o.set})}function We(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(Ge,t)}var Ze=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ve=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},Je=(console,{profile:console.profile?A(console.profile,console):function(){},profileEnd:console.profileEnd?A(console.profileEnd,console):function(){},warn:_});function Ke(e,t,r,n){var o=Ve(n,3),i=o[0],a=void 0===i?null:i,s=o[1],u=void 0!==s&&s,l=o[2],c=void 0===l?Je:l;if(!Xe.__enabled)return Xe.__warned||(c.warn("console.profile is not supported. All @profile decorators are disabled."),Xe.__warned=!0),r;var f=r.value;if(null===a&&(a=e.constructor.name+"."+t),"function"!=typeof f)throw new SyntaxError("@profile can only be used on functions, not: "+f);return Ze({},r,{value:function(){var e=Date.now(),t=x(this);(!0===u&&!t.profileLastRan||!1===u||"number"==typeof u&&e-t.profileLastRan>u||"function"==typeof u&&u.apply(this,arguments))&&(c.profile(a),t.profileLastRan=e);try{return f.apply(this,arguments)}finally{c.profileEnd(a)}}})}function Xe(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(Ke,t)}Xe.__enabled=!!console.profile,Xe.__warned=!1;var Ye=Object.defineProperty,Qe=Object.getOwnPropertyDescriptor;function et(e,t){var r=e.prototype;for(var n in t)for(var o=t[n],i=0,a=o.length;i<a;i++){var s=o[i];Ye(r,n,s(r,n,Qe(r,n)))}return e}r.d(t,"override",(function(){return q})),r.d(t,"deprecate",(function(){return B})),r.d(t,"deprecated",(function(){return B})),r.d(t,"suppressWarnings",(function(){return K})),r.d(t,"memoize",(function(){return te})),r.d(t,"autobind",(function(){return le})),r.d(t,"readonly",(function(){return fe})),r.d(t,"enumerable",(function(){return he})),r.d(t,"nonenumerable",(function(){return ye})),r.d(t,"nonconfigurable",(function(){return me})),r.d(t,"debounce",(function(){return Oe})),r.d(t,"throttle",(function(){return je})),r.d(t,"decorate",(function(){return _e})),r.d(t,"mixin",(function(){return Re})),r.d(t,"mixins",(function(){return Re})),r.d(t,"lazyInitialize",(function(){return i})),r.d(t,"time",(function(){return $e})),r.d(t,"extendDescriptor",(function(){return We})),r.d(t,"profile",(function(){return Xe})),r.d(t,"applyDecorators",(function(){return et}))}]); +!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=8)}([function(e,t){const r=/[&<>"']/,n=/[&<>"']/g,o=/[<>"']|&(?!#?\w+;)/,i=/[<>"']|&(?!#?\w+;)/g,a={"&":"&","<":"<",">":">",'"':""","'":"'"},s=e=>a[e];const u=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function l(e){return e.replace(u,(e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):"")}const c=/(^|[^\[])\^/g;const f=/[^\w:]/g,p=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;const h={},d=/^[^:]+:\/*[^/]*$/,y=/^([^:]+:)[\s\S]*$/,g=/^([^:]+:\/*[^/]*)[\s\S]*$/;function m(e,t){h[" "+e]||(d.test(e)?h[" "+e]=e+"/":h[" "+e]=b(e,"/",!0));const r=-1===(e=h[" "+e]).indexOf(":");return"//"===t.substring(0,2)?r?t:e.replace(y,"$1")+t:"/"===t.charAt(0)?r?t:e.replace(g,"$1")+t:e+t}function b(e,t,r){const n=e.length;if(0===n)return"";let o=0;for(;o<n;){const i=e.charAt(n-o-1);if(i!==t||r){if(i===t||!r)break;o++}else o++}return e.substr(0,n-o)}e.exports={escape:function(e,t){if(t){if(r.test(e))return e.replace(n,s)}else if(o.test(e))return e.replace(i,s);return e},unescape:l,edit:function(e,t){e=e.source||e,t=t||"";const r={replace:(t,n)=>(n=(n=n.source||n).replace(c,"$1"),e=e.replace(t,n),r),getRegex:()=>new RegExp(e,t)};return r},cleanUrl:function(e,t,r){if(e){let e;try{e=decodeURIComponent(l(r)).replace(f,"").toLowerCase()}catch(e){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!p.test(r)&&(r=m(t,r));try{r=encodeURI(r).replace(/%25/g,"%")}catch(e){return null}return r},resolveUrl:m,noopTest:{exec:function(){}},merge:function(e){let t,r,n=1;for(;n<arguments.length;n++)for(r in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},splitCells:function(e,t){const r=e.replace(/\|/g,(e,t,r)=>{let n=!1,o=t;for(;--o>=0&&"\\"===r[o];)n=!n;return n?"|":" |"}).split(/ \|/);let n=0;if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;n<r.length;n++)r[n]=r[n].trim().replace(/\\\|/g,"|");return r},rtrim:b,findClosingBracket:function(e,t){if(-1===e.indexOf(t[1]))return-1;const r=e.length;let n=0,o=0;for(;o<r;o++)if("\\"===e[o])o++;else if(e[o]===t[0])n++;else if(e[o]===t[1]&&(n--,n<0))return o;return-1},checkSanitizeDeprecation:function(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}}},function(e,t){function r(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}}e.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1},getDefaults:r,changeDefaults:function(t){e.exports.defaults=t}}},function(e,t,r){const{defaults:n}=r(1),{cleanUrl:o,escape:i}=r(0);e.exports=class{constructor(e){this.options=e||n}code(e,t,r){const n=(t||"").match(/\S*/)[0];if(this.options.highlight){const t=this.options.highlight(e,n);null!=t&&t!==e&&(r=!0,e=t)}return n?'<pre><code class="'+this.options.langPrefix+i(n,!0)+'">'+(r?e:i(e,!0))+"</code></pre>\n":"<pre><code>"+(r?e:i(e,!0))+"</code></pre>"}blockquote(e){return"<blockquote>\n"+e+"</blockquote>\n"}html(e){return e}heading(e,t,r,n){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+n.slug(r)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"}hr(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}list(e,t,r){const n=t?"ol":"ul";return"<"+n+(t&&1!==r?' start="'+r+'"':"")+">\n"+e+"</"+n+">\n"}listitem(e){return"<li>"+e+"</li>\n"}checkbox(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}paragraph(e){return"<p>"+e+"</p>\n"}table(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"}tablerow(e){return"<tr>\n"+e+"</tr>\n"}tablecell(e,t){const r=t.header?"th":"td";return(t.align?"<"+r+' align="'+t.align+'">':"<"+r+">")+e+"</"+r+">\n"}strong(e){return"<strong>"+e+"</strong>"}em(e){return"<em>"+e+"</em>"}codespan(e){return"<code>"+e+"</code>"}br(){return this.options.xhtml?"<br/>":"<br>"}del(e){return"<del>"+e+"</del>"}link(e,t,r){if(null===(e=o(this.options.sanitize,this.options.baseUrl,e)))return r;let n='<a href="'+i(e)+'"';return t&&(n+=' title="'+t+'"'),n+=">"+r+"</a>",n}image(e,t,r){if(null===(e=o(this.options.sanitize,this.options.baseUrl,e)))return r;let n='<img src="'+e+'" alt="'+r+'"';return t&&(n+=' title="'+t+'"'),n+=this.options.xhtml?"/>":">",n}text(e){return e}}},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){const{noopTest:n,edit:o,merge:i}=r(0),a={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:n,table:n,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};a.def=o(a.def).replace("label",a._label).replace("title",a._title).getRegex(),a.bullet=/(?:[*+-]|\d{1,9}\.)/,a.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,a.item=o(a.item,"gm").replace(/bull/g,a.bullet).getRegex(),a.list=o(a.list).replace(/bull/g,a.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+a.def.source+")").getRegex(),a._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",a._comment=/<!--(?!-?>)[\s\S]*?-->/,a.html=o(a.html,"i").replace("comment",a._comment).replace("tag",a._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),a.paragraph=o(a._paragraph).replace("hr",a.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",a._tag).getRegex(),a.blockquote=o(a.blockquote).replace("paragraph",a.paragraph).getRegex(),a.normal=i({},a),a.gfm=i({},a.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),a.pedantic=i({},a.normal,{html:o("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",a._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:n,paragraph:o(a.normal._paragraph).replace("hr",a.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",a.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const s={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:n,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:n,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/,_punctuation:"!\"#$%&'()*+,\\-./:;<=>?@\\[^_{|}~"};s.em=o(s.em).replace(/punctuation/g,s._punctuation).getRegex(),s._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,s._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,s._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,s.autolink=o(s.autolink).replace("scheme",s._scheme).replace("email",s._email).getRegex(),s._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,s.tag=o(s.tag).replace("comment",a._comment).replace("attribute",s._attribute).getRegex(),s._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,s._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,s._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,s.link=o(s.link).replace("label",s._label).replace("href",s._href).replace("title",s._title).getRegex(),s.reflink=o(s.reflink).replace("label",s._label).getRegex(),s.normal=i({},s),s.pedantic=i({},s.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:o(/^!?\[(label)\]\((.*?)\)/).replace("label",s._label).getRegex(),reflink:o(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",s._label).getRegex()}),s.gfm=i({},s.normal,{escape:o(s.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),s.gfm.url=o(s.gfm.url,"i").replace("email",s.gfm._extended_email).getRegex(),s.breaks=i({},s.gfm,{br:o(s.br).replace("{2,}","*").getRegex(),text:o(s.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()}),e.exports={block:a,inline:s}},function(e,t){e.exports=class{constructor(){this.seen={}}slug(e){let t=e.toLowerCase().trim().replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){const e=t;do{this.seen[e]++,t=e+"-"+this.seen[e]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t}}},function(e,t,r){const n=r(2),{defaults:o}=r(1),{inline:i}=r(4),{findClosingBracket:a,escape:s}=r(0);e.exports=class e{constructor(e,t){if(this.options=t||o,this.links=e,this.rules=i.normal,this.options.renderer=this.options.renderer||new n,this.renderer=this.options.renderer,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.pedantic?this.rules=i.pedantic:this.options.gfm&&(this.options.breaks?this.rules=i.breaks:this.rules=i.gfm)}static get rules(){return i}static output(t,r,n){return new e(r,n).output(t)}output(t){let r,n,o,i,u,l,c="";for(;t;)if(u=this.rules.escape.exec(t))t=t.substring(u[0].length),c+=s(u[1]);else if(u=this.rules.tag.exec(t))!this.inLink&&/^<a /i.test(u[0])?this.inLink=!0:this.inLink&&/^<\/a>/i.test(u[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(u[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(u[0])&&(this.inRawBlock=!1),t=t.substring(u[0].length),c+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(u[0]):s(u[0]):u[0];else if(u=this.rules.link.exec(t)){const n=a(u[2],"()");if(n>-1){const e=(0===u[0].indexOf("!")?5:4)+u[1].length+n;u[2]=u[2].substring(0,n),u[0]=u[0].substring(0,e).trim(),u[3]=""}t=t.substring(u[0].length),this.inLink=!0,o=u[2],this.options.pedantic?(r=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o),r?(o=r[1],i=r[3]):i=""):i=u[3]?u[3].slice(1,-1):"",o=o.trim().replace(/^<([\s\S]*)>$/,"$1"),c+=this.outputLink(u,{href:e.escapes(o),title:e.escapes(i)}),this.inLink=!1}else if((u=this.rules.reflink.exec(t))||(u=this.rules.nolink.exec(t))){if(t=t.substring(u[0].length),r=(u[2]||u[1]).replace(/\s+/g," "),r=this.links[r.toLowerCase()],!r||!r.href){c+=u[0].charAt(0),t=u[0].substring(1)+t;continue}this.inLink=!0,c+=this.outputLink(u,r),this.inLink=!1}else if(u=this.rules.strong.exec(t))t=t.substring(u[0].length),c+=this.renderer.strong(this.output(u[4]||u[3]||u[2]||u[1]));else if(u=this.rules.em.exec(t))t=t.substring(u[0].length),c+=this.renderer.em(this.output(u[6]||u[5]||u[4]||u[3]||u[2]||u[1]));else if(u=this.rules.code.exec(t))t=t.substring(u[0].length),c+=this.renderer.codespan(s(u[2].trim(),!0));else if(u=this.rules.br.exec(t))t=t.substring(u[0].length),c+=this.renderer.br();else if(u=this.rules.del.exec(t))t=t.substring(u[0].length),c+=this.renderer.del(this.output(u[1]));else if(u=this.rules.autolink.exec(t))t=t.substring(u[0].length),"@"===u[2]?(n=s(this.mangle(u[1])),o="mailto:"+n):(n=s(u[1]),o=n),c+=this.renderer.link(o,null,n);else if(this.inLink||!(u=this.rules.url.exec(t))){if(u=this.rules.text.exec(t))t=t.substring(u[0].length),this.inRawBlock?c+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(u[0]):s(u[0]):u[0]):c+=this.renderer.text(s(this.smartypants(u[0])));else if(t)throw new Error("Infinite loop on byte: "+t.charCodeAt(0))}else{if("@"===u[2])n=s(u[0]),o="mailto:"+n;else{do{l=u[0],u[0]=this.rules._backpedal.exec(u[0])[0]}while(l!==u[0]);n=s(u[0]),o="www."===u[1]?"http://"+n:n}t=t.substring(u[0].length),c+=this.renderer.link(o,null,n)}return c}static escapes(t){return t?t.replace(e.rules._escapes,"$1"):t}outputLink(e,t){const r=t.href,n=t.title?s(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(r,n,this.output(e[1])):this.renderer.image(r,n,s(e[1]))}smartypants(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e}mangle(e){if(!this.options.mangle)return e;const t=e.length;let r,n="",o=0;for(;o<t;o++)r=e.charCodeAt(o),Math.random()>.5&&(r="x"+r.toString(16)),n+="&#"+r+";";return n}}},function(e,t){e.exports=class{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}text(e){return e}link(e,t,r){return""+r}image(e,t,r){return""+r}br(){return""}}},function(e,t,r){r(9),e.exports=r(20)},function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),r(10);const i=r(21),a=r(11);r(12);const s=r(14),u=r(17);r(18),r(19);class l{init(){return o(this,void 0,void 0,(function*(){this.enableMenu(),this.checkStatus();new u('a[href*="#"]',{updateURL:!1})}))}checkStatus(){return o(this,void 0,void 0,(function*(){const e=document.querySelector(".serviceinfo"),t=document.querySelector("#version"),r=document.querySelector("#currentstatus"),n=document.querySelector("#servermessage");try{const o=yield fetch(`${location.pathname}info`);if(!o.ok)throw new Error(o.statusText);e.classList.remove("offline");const i=yield o.json();switch(i&&(t.textContent=i.version,i.message&&(n.innerHTML=a.sanitize(s(i.message)))),i.status){case 1:r.textContent="Online",r.className="text-success";break;case 3:r.textContent="Not accepting new syncs",r.className="text-warning";break;default:case 2:r.textContent="Offline",r.className="text-danger"}}catch(e){r.textContent="Offline",r.className="text-danger",console.error(e)}}))}enableMenu(){const e=document.querySelector(".nav-menu-button"),t=document.querySelector("nav"),r=()=>{t.classList.contains("open")?(t.classList.remove("open"),e.classList.remove("hide"),document.body.classList.remove("noscroll")):(t.classList.add("open"),e.classList.add("hide"),document.body.classList.add("noscroll"))};e.addEventListener("click",e=>{r()});const n=t.querySelectorAll("a");Array.from(n).forEach(e=>{e.addEventListener("click",e=>{r()})})}}n([i.autobind],l.prototype,"init",null);const c=new l;document.addEventListener("DOMContentLoaded",c.init)},function(e,t,r){},function(e,t,r){e.exports=function(){"use strict";var e=Object.freeze||function(e){return e},t=e(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),r=e(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","audio","canvas","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","video","view","vkern"]),n=e(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),o=e(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),i=e(["#text"]),a=Object.freeze||function(e){return e},s=a(["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","coords","crossorigin","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","integrity","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","minlength","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns"]),u=a(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),l=a(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),c=a(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),f=Object.hasOwnProperty,p=Object.setPrototypeOf,h=("undefined"!=typeof Reflect&&Reflect).apply;function d(e,t){p&&p(e,null);for(var r=t.length;r--;){var n=t[r];if("string"==typeof n){var o=n.toLowerCase();o!==n&&(Object.isFrozen(t)||(t[r]=o),n=o)}e[n]=!0}return e}function y(e){var t={},r=void 0;for(r in e)h(f,e,[r])&&(t[r]=e[r]);return t}h||(h=function(e,t,r){return e.apply(t,r)});var g=Object.seal||function(e){return e},m=g(/\{\{[\s\S]*|[\s\S]*\}\}/gm),b=g(/<%[\s\S]*|[\s\S]*%>/gm),v=g(/^data-[\-\w.\u00B7-\uFFFF]/),w=g(/^aria-[\-\w]+$/),O=g(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),S=g(/^(?:\w+script|data):/i),x=g(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g),T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function j(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var E=("undefined"!=typeof Reflect&&Reflect).apply,A=Array.prototype.slice,_=Object.freeze,k=function(){return"undefined"==typeof window?null:window};E||(E=function(e,t,r){return e.apply(t,r)});var P=function(e,t){if("object"!==(void 0===e?"undefined":T(e))||"function"!=typeof e.createPolicy)return null;var r=null;t.currentScript&&t.currentScript.hasAttribute("data-tt-policy-suffix")&&(r=t.currentScript.getAttribute("data-tt-policy-suffix"));var n="dompurify"+(r?"#"+r:"");try{return e.createPolicy(n,{createHTML:function(e){return e}})}catch(e){return console.warn("TrustedTypes policy "+n+" could not be created."),null}};return function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k(),f=function(t){return e(t)};if(f.version="2.0.7",f.removed=[],!a||!a.document||9!==a.document.nodeType)return f.isSupported=!1,f;var p=a.document,h=!1,g=!1,I=a.document,C=a.DocumentFragment,M=a.HTMLTemplateElement,R=a.Node,N=a.NodeFilter,L=a.NamedNodeMap,D=void 0===L?a.NamedNodeMap||a.MozNamedAttrMap:L,z=a.Text,F=a.Comment,q=a.DOMParser,$=a.TrustedTypes;if("function"==typeof M){var H=I.createElement("template");H.content&&H.content.ownerDocument&&(I=H.content.ownerDocument)}var U=P($,p),B=U?U.createHTML(""):"",G=I,W=G.implementation,Z=G.createNodeIterator,V=G.getElementsByTagName,J=G.createDocumentFragment,K=p.importNode,X={};f.isSupported=W&&void 0!==W.createHTMLDocument&&9!==I.documentMode;var Y=m,Q=b,ee=v,te=w,re=S,ne=x,oe=O,ie=null,ae=d({},[].concat(j(t),j(r),j(n),j(o),j(i))),se=null,ue=d({},[].concat(j(s),j(u),j(l),j(c))),le=null,ce=null,fe=!0,pe=!0,he=!1,de=!1,ye=!1,ge=!1,me=!1,be=!1,ve=!1,we=!1,Oe=!1,Se=!1,xe=!0,Te=!0,je=!1,Ee={},Ae=d({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","plaintext","script","style","svg","template","thead","title","video","xmp"]),_e=d({},["audio","video","img","source","image"]),ke=null,Pe=d({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),Ie=null,Ce=I.createElement("form"),Me=function(e){Ie&&Ie===e||(e&&"object"===(void 0===e?"undefined":T(e))||(e={}),ie="ALLOWED_TAGS"in e?d({},e.ALLOWED_TAGS):ae,se="ALLOWED_ATTR"in e?d({},e.ALLOWED_ATTR):ue,ke="ADD_URI_SAFE_ATTR"in e?d(y(Pe),e.ADD_URI_SAFE_ATTR):Pe,le="FORBID_TAGS"in e?d({},e.FORBID_TAGS):{},ce="FORBID_ATTR"in e?d({},e.FORBID_ATTR):{},Ee="USE_PROFILES"in e&&e.USE_PROFILES,fe=!1!==e.ALLOW_ARIA_ATTR,pe=!1!==e.ALLOW_DATA_ATTR,he=e.ALLOW_UNKNOWN_PROTOCOLS||!1,de=e.SAFE_FOR_JQUERY||!1,ye=e.SAFE_FOR_TEMPLATES||!1,ge=e.WHOLE_DOCUMENT||!1,ve=e.RETURN_DOM||!1,we=e.RETURN_DOM_FRAGMENT||!1,Oe=e.RETURN_DOM_IMPORT||!1,Se=e.RETURN_TRUSTED_TYPE||!1,be=e.FORCE_BODY||!1,xe=!1!==e.SANITIZE_DOM,Te=!1!==e.KEEP_CONTENT,je=e.IN_PLACE||!1,oe=e.ALLOWED_URI_REGEXP||oe,ye&&(pe=!1),we&&(ve=!0),Ee&&(ie=d({},[].concat(j(i))),se=[],!0===Ee.html&&(d(ie,t),d(se,s)),!0===Ee.svg&&(d(ie,r),d(se,u),d(se,c)),!0===Ee.svgFilters&&(d(ie,n),d(se,u),d(se,c)),!0===Ee.mathMl&&(d(ie,o),d(se,l),d(se,c))),e.ADD_TAGS&&(ie===ae&&(ie=y(ie)),d(ie,e.ADD_TAGS)),e.ADD_ATTR&&(se===ue&&(se=y(se)),d(se,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&d(ke,e.ADD_URI_SAFE_ATTR),Te&&(ie["#text"]=!0),ge&&d(ie,["html","head","body"]),ie.table&&(d(ie,["tbody"]),delete le.tbody),_&&_(e),Ie=e)},Re=function(e){f.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=B}},Ne=function(e,t){try{f.removed.push({attribute:t.getAttributeNode(e),from:t})}catch(e){f.removed.push({attribute:null,from:t})}t.removeAttribute(e)},Le=function(e){var t=void 0,r=void 0;if(be)e="<remove></remove>"+e;else{var n=e.match(/^[\s]+/);(r=n&&n[0])&&(e=e.slice(r.length))}if(h)try{t=(new q).parseFromString(e,"text/html")}catch(e){}if(g&&d(le,["title"]),!t||!t.documentElement){var o=(t=W.createHTMLDocument("")).body;o.parentNode.removeChild(o.parentNode.firstElementChild),o.outerHTML=U?U.createHTML(e):e}return e&&r&&t.body.insertBefore(I.createTextNode(r),t.body.childNodes[0]||null),V.call(t,ge?"html":"body")[0]};f.isSupported&&(function(){try{Le('<svg><p><textarea><img src="</textarea><img src=x abc=1//">').querySelector("svg img")&&(h=!0)}catch(e){}}(),function(){try{var e=Le("<x/><title></title><img>");/<\/title/.test(e.querySelector("title").innerHTML)&&(g=!0)}catch(e){}}());var De=function(e){return Z.call(e.ownerDocument||e,e,N.SHOW_ELEMENT|N.SHOW_COMMENT|N.SHOW_TEXT,(function(){return N.FILTER_ACCEPT}),!1)},ze=function(e){return!(e instanceof z||e instanceof F||"string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof D&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI)},Fe=function(e){return"object"===(void 0===R?"undefined":T(R))?e instanceof R:e&&"object"===(void 0===e?"undefined":T(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},qe=function(e,t,r){X[e]&&X[e].forEach((function(e){e.call(f,t,r,Ie)}))},$e=function(e){var t=void 0;if(qe("beforeSanitizeElements",e,null),ze(e))return Re(e),!0;var r=e.nodeName.toLowerCase();if(qe("uponSanitizeElement",e,{tagName:r,allowedTags:ie}),("svg"===r||"math"===r)&&0!==e.querySelectorAll("p, br").length)return Re(e),!0;if(!ie[r]||le[r]){if(Te&&!Ae[r]&&"function"==typeof e.insertAdjacentHTML)try{var n=e.innerHTML;e.insertAdjacentHTML("AfterEnd",U?U.createHTML(n):n)}catch(e){}return Re(e),!0}return"noscript"===r&&/<\/noscript/i.test(e.innerHTML)?(Re(e),!0):"noembed"===r&&/<\/noembed/i.test(e.innerHTML)?(Re(e),!0):(!de||e.firstElementChild||e.content&&e.content.firstElementChild||!/</g.test(e.textContent)||(f.removed.push({element:e.cloneNode()}),e.innerHTML?e.innerHTML=e.innerHTML.replace(/</g,"<"):e.innerHTML=e.textContent.replace(/</g,"<")),ye&&3===e.nodeType&&(t=(t=(t=e.textContent).replace(Y," ")).replace(Q," "),e.textContent!==t&&(f.removed.push({element:e.cloneNode()}),e.textContent=t)),qe("afterSanitizeElements",e,null),!1)},He=function(e,t,r){if(xe&&("id"===t||"name"===t)&&(r in I||r in Ce))return!1;if(pe&&ee.test(t));else if(fe&&te.test(t));else{if(!se[t]||ce[t])return!1;if(ke[t]);else if(oe.test(r.replace(ne,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==r.indexOf("data:")||!_e[e])if(he&&!re.test(r.replace(ne,"")));else if(r)return!1}return!0},Ue=function(e){var t=void 0,r=void 0,n=void 0,o=void 0,i=void 0;qe("beforeSanitizeAttributes",e,null);var a=e.attributes;if(a){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:se};for(i=a.length;i--;){var u=t=a[i],l=u.name,c=u.namespaceURI;if(r=t.value.trim(),n=l.toLowerCase(),s.attrName=n,s.attrValue=r,s.keepAttr=!0,qe("uponSanitizeAttribute",e,s),r=s.attrValue,"name"===n&&"IMG"===e.nodeName&&a.id)o=a.id,a=E(A,a,[]),Ne("id",e),Ne(l,e),a.indexOf(o)>i&&e.setAttribute("id",o.value);else{if("INPUT"===e.nodeName&&"type"===n&&"file"===r&&s.keepAttr&&(se[n]||!ce[n]))continue;"id"===l&&e.setAttribute(l,""),Ne(l,e)}if(s.keepAttr)if(/svg|math/i.test(e.namespaceURI)&&new RegExp("</("+Object.keys(Ae).join("|")+")","i").test(r))Ne(l,e);else{ye&&(r=(r=r.replace(Y," ")).replace(Q," "));var p=e.nodeName.toLowerCase();if(He(p,n,r))try{c?e.setAttributeNS(c,l,r):e.setAttribute(l,r),f.removed.pop()}catch(e){}}}qe("afterSanitizeAttributes",e,null)}},Be=function e(t){var r=void 0,n=De(t);for(qe("beforeSanitizeShadowDOM",t,null);r=n.nextNode();)qe("uponSanitizeShadowNode",r,null),$e(r)||(r.content instanceof C&&e(r.content),Ue(r));qe("afterSanitizeShadowDOM",t,null)};return f.sanitize=function(e,t){var r=void 0,n=void 0,o=void 0,i=void 0,s=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!Fe(e)){if("function"!=typeof e.toString)throw new TypeError("toString is not a function");if("string"!=typeof(e=e.toString()))throw new TypeError("dirty is not a string, aborting")}if(!f.isSupported){if("object"===T(a.toStaticHTML)||"function"==typeof a.toStaticHTML){if("string"==typeof e)return a.toStaticHTML(e);if(Fe(e))return a.toStaticHTML(e.outerHTML)}return e}if(me||Me(t),f.removed=[],je);else if(e instanceof R)1===(n=(r=Le("\x3c!--\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===n.nodeName?r=n:"HTML"===n.nodeName?r=n:r.appendChild(n);else{if(!ve&&!ye&&!ge&&Se&&-1===e.indexOf("<"))return U?U.createHTML(e):e;if(!(r=Le(e)))return ve?null:B}r&&be&&Re(r.firstChild);for(var u=De(je?e:r);o=u.nextNode();)3===o.nodeType&&o===i||$e(o)||(o.content instanceof C&&Be(o.content),Ue(o),i=o);if(i=null,je)return e;if(ve){if(we)for(s=J.call(r.ownerDocument);r.firstChild;)s.appendChild(r.firstChild);else s=r;return Oe&&(s=K.call(p,s,!0)),s}var l=ge?r.outerHTML:r.innerHTML;return ye&&(l=(l=l.replace(Y," ")).replace(Q," ")),U&&Se?U.createHTML(l):l},f.setConfig=function(e){Me(e),me=!0},f.clearConfig=function(){Ie=null,me=!1},f.isValidAttribute=function(e,t,r){Ie||Me({});var n=e.toLowerCase(),o=t.toLowerCase();return He(n,o,r)},f.addHook=function(e,t){"function"==typeof t&&(X[e]=X[e]||[],X[e].push(t))},f.removeHook=function(e){X[e]&&X[e].pop()},f.removeHooks=function(e){X[e]&&(X[e]=[])},f.removeAllHooks=function(){X={}},f}()}()},function(e,t,r){(function(n,o){var i,a;void 0===(a="function"==typeof(i=function(){"use strict";var e,t=Function.call.bind(Function.apply),r=Function.call.bind(Function.call),i=Array.isArray,a=Object.keys,s=function(e){return function(){return!t(e,this,arguments)}},u=function(e){try{return e(),!1}catch(e){return!0}},l=function(e){try{return e()}catch(e){return!1}},c=s(u),f=function(){return!u((function(){return Object.defineProperty({},"x",{get:function(){}})}))},p=!!Object.defineProperty&&f(),h="foo"===function(){}.name,d=Function.call.bind(Array.prototype.forEach),y=Function.call.bind(Array.prototype.reduce),g=Function.call.bind(Array.prototype.filter),m=Function.call.bind(Array.prototype.some),b=function(e,t,r,n){!n&&t in e||(p?Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:!0,value:r}):e[t]=r)},v=function(e,t,r){d(a(t),(function(n){var o=t[n];b(e,n,o,!!r)}))},w=Function.call.bind(Object.prototype.toString),O=function(e){return"function"==typeof e},S={getter:function(e,t,r){if(!p)throw new TypeError("getters require true ES5 support");Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get:r})},proxy:function(e,t,r){if(!p)throw new TypeError("getters require true ES5 support");var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,{configurable:n.configurable,enumerable:n.enumerable,get:function(){return e[t]},set:function(r){e[t]=r}})},redefine:function(e,t,r){if(p){var n=Object.getOwnPropertyDescriptor(e,t);n.value=r,Object.defineProperty(e,t,n)}else e[t]=r},defineByDescriptor:function(e,t,r){p?Object.defineProperty(e,t,r):"value"in r&&(e[t]=r.value)},preserveToString:function(e,t){t&&O(t.toString)&&b(e,"toString",t.toString.bind(t),!0)}},x=Object.create||function(e,t){var r=function(){};r.prototype=e;var n=new r;return void 0!==t&&a(t).forEach((function(e){S.defineByDescriptor(n,e,t[e])})),n},T=function(e,t){return!!Object.setPrototypeOf&&l((function(){var r=function t(r){var n=new e(r);return Object.setPrototypeOf(n,t.prototype),n};return Object.setPrototypeOf(r,e),r.prototype=x(e.prototype,{constructor:{value:r}}),t(r)}))},j=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n)return n;throw new Error("unable to locate global object")},E=j(),A=E.isFinite,_=Function.call.bind(String.prototype.indexOf),k=Function.apply.bind(Array.prototype.indexOf),P=Function.call.bind(Array.prototype.concat),I=Function.call.bind(String.prototype.slice),C=Function.call.bind(Array.prototype.push),M=Function.apply.bind(Array.prototype.push),R=Function.call.bind(Array.prototype.shift),N=Math.max,L=Math.min,D=Math.floor,z=Math.abs,F=Math.exp,q=Math.log,$=Math.sqrt,H=Function.call.bind(Object.prototype.hasOwnProperty),U=function(){},B=E.Map,G=B&&B.prototype.delete,W=B&&B.prototype.get,Z=B&&B.prototype.has,V=B&&B.prototype.set,J=E.Symbol||{},K=J.species||"@@species",X=Number.isNaN||function(e){return e!=e},Y=Number.isFinite||function(e){return"number"==typeof e&&A(e)},Q=O(Math.sign)?Math.sign:function(e){var t=Number(e);return 0===t?t:X(t)?t:t<0?-1:1},ee=function(e){var t=Number(e);return t<-1||X(t)?NaN:0===t||t===1/0?t:-1===t?-1/0:1+t-1==0?t:t*(q(1+t)/(1+t-1))},te=function(e){return"[object Arguments]"===w(e)},re=function(e){return null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==w(e)&&"[object Function]"===w(e.callee)},ne=te(arguments)?te:re,oe={primitive:function(e){return null===e||"function"!=typeof e&&"object"!=typeof e},string:function(e){return"[object String]"===w(e)},regex:function(e){return"[object RegExp]"===w(e)},symbol:function(e){return"function"==typeof E.Symbol&&"symbol"==typeof e}},ie=function(e,t,r){var n=e[t];b(e,t,r,!0),S.preserveToString(e[t],n)},ae="function"==typeof J&&"function"==typeof J.for&&oe.symbol(J()),se=oe.symbol(J.iterator)?J.iterator:"_es6-shim iterator_";E.Set&&"function"==typeof(new E.Set)["@@iterator"]&&(se="@@iterator"),E.Reflect||b(E,"Reflect",{},!0);var ue,le=E.Reflect,ce=String,fe="undefined"!=typeof document&&document?document.all:null,pe=null==fe?function(e){return null==e}:function(e){return null==e&&e!==fe},he={Call:function(e,r){var n=arguments.length>2?arguments[2]:[];if(!he.IsCallable(e))throw new TypeError(e+" is not a function");return t(e,r,n)},RequireObjectCoercible:function(e,t){if(pe(e))throw new TypeError(t||"Cannot call method on "+e);return e},TypeIsObject:function(e){return null!=e&&!0!==e&&!1!==e&&("function"==typeof e||"object"==typeof e||e===fe)},ToObject:function(e,t){return Object(he.RequireObjectCoercible(e,t))},IsCallable:O,IsConstructor:function(e){return he.IsCallable(e)},ToInt32:function(e){return he.ToNumber(e)>>0},ToUint32:function(e){return he.ToNumber(e)>>>0},ToNumber:function(e){if("[object Symbol]"===w(e))throw new TypeError("Cannot convert a Symbol value to a number");return+e},ToInteger:function(e){var t=he.ToNumber(e);return X(t)?0:0!==t&&Y(t)?(t>0?1:-1)*D(z(t)):t},ToLength:function(e){var t=he.ToInteger(e);return t<=0?0:t>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:t},SameValue:function(e,t){return e===t?0!==e||1/e==1/t:X(e)&&X(t)},SameValueZero:function(e,t){return e===t||X(e)&&X(t)},IsIterable:function(e){return he.TypeIsObject(e)&&(void 0!==e[se]||ne(e))},GetIterator:function(t){if(ne(t))return new e(t,"value");var r=he.GetMethod(t,se);if(!he.IsCallable(r))throw new TypeError("value is not an iterable");var n=he.Call(r,t);if(!he.TypeIsObject(n))throw new TypeError("bad iterator");return n},GetMethod:function(e,t){var r=he.ToObject(e)[t];if(!pe(r)){if(!he.IsCallable(r))throw new TypeError("Method not callable: "+t);return r}},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,t){var r=he.GetMethod(e,"return");if(void 0!==r){var n,o;try{n=he.Call(r,e)}catch(e){o=e}if(!t){if(o)throw o;if(!he.TypeIsObject(n))throw new TypeError("Iterator's return method returned a non-object.")}}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!he.TypeIsObject(t))throw new TypeError("bad iterator");return t},IteratorStep:function(e){var t=he.IteratorNext(e);return!he.IteratorComplete(t)&&t},Construct:function(e,t,r,n){var o=void 0===r?e:r;if(!n&&le.construct)return le.construct(e,t,o);var i=o.prototype;he.TypeIsObject(i)||(i=Object.prototype);var a=x(i),s=he.Call(e,a,t);return he.TypeIsObject(s)?s:a},SpeciesConstructor:function(e,t){var r=e.constructor;if(void 0===r)return t;if(!he.TypeIsObject(r))throw new TypeError("Bad constructor");var n=r[K];if(pe(n))return t;if(!he.IsConstructor(n))throw new TypeError("Bad @@species");return n},CreateHTML:function(e,t,r,n){var o=he.ToString(e),i="<"+t;return""!==r&&(i+=" "+r+'="'+he.ToString(n).replace(/"/g,""")+'"'),i+">"+o+"</"+t+">"},IsRegExp:function(e){if(!he.TypeIsObject(e))return!1;var t=e[J.match];return void 0!==t?!!t:oe.regex(e)},ToString:function(e){return ce(e)}};if(p&&ae){var de=function(e){if(oe.symbol(J[e]))return J[e];var t=J.for("Symbol."+e);return Object.defineProperty(J,e,{configurable:!1,enumerable:!1,writable:!1,value:t}),t};if(!oe.symbol(J.search)){var ye=de("search"),ge=String.prototype.search;b(RegExp.prototype,ye,(function(e){return he.Call(ge,e,[this])}));var me=function(e){var t=he.RequireObjectCoercible(this);if(!pe(e)){var r=he.GetMethod(e,ye);if(void 0!==r)return he.Call(r,e,[t])}return he.Call(ge,t,[he.ToString(e)])};ie(String.prototype,"search",me)}if(!oe.symbol(J.replace)){var be=de("replace"),ve=String.prototype.replace;b(RegExp.prototype,be,(function(e,t){return he.Call(ve,e,[this,t])}));var we=function(e,t){var r=he.RequireObjectCoercible(this);if(!pe(e)){var n=he.GetMethod(e,be);if(void 0!==n)return he.Call(n,e,[r,t])}return he.Call(ve,r,[he.ToString(e),t])};ie(String.prototype,"replace",we)}if(!oe.symbol(J.split)){var Oe=de("split"),Se=String.prototype.split;b(RegExp.prototype,Oe,(function(e,t){return he.Call(Se,e,[this,t])}));var xe=function(e,t){var r=he.RequireObjectCoercible(this);if(!pe(e)){var n=he.GetMethod(e,Oe);if(void 0!==n)return he.Call(n,e,[r,t])}return he.Call(Se,r,[he.ToString(e),t])};ie(String.prototype,"split",xe)}var Te=oe.symbol(J.match),je=Te&&((ue={})[J.match]=function(){return 42},42!=="a".match(ue));if(!Te||je){var Ee=de("match"),Ae=String.prototype.match;b(RegExp.prototype,Ee,(function(e){return he.Call(Ae,e,[this])}));var _e=function(e){var t=he.RequireObjectCoercible(this);if(!pe(e)){var r=he.GetMethod(e,Ee);if(void 0!==r)return he.Call(r,e,[t])}return he.Call(Ae,t,[he.ToString(e)])};ie(String.prototype,"match",_e)}}var ke=function(e,t,r){S.preserveToString(t,e),Object.setPrototypeOf&&Object.setPrototypeOf(e,t),p?d(Object.getOwnPropertyNames(e),(function(n){n in U||r[n]||S.proxy(e,n,t)})):d(Object.keys(e),(function(n){n in U||r[n]||(t[n]=e[n])})),t.prototype=e.prototype,S.redefine(e.prototype,"constructor",t)},Pe=function(){return this},Ie=function(e){p&&!H(e,K)&&S.getter(e,K,Pe)},Ce=function(e,t){var r=t||function(){return this};b(e,se,r),!e[se]&&oe.symbol(se)&&(e[se]=r)},Me=function(e,t,r){p?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:r}):e[t]=r},Re=function(e,t,r){if(Me(e,t,r),!he.SameValue(e[t],r))throw new TypeError("property is nonconfigurable")},Ne=function(e,t,r,n){if(!he.TypeIsObject(e))throw new TypeError("Constructor requires `new`: "+t.name);var o=t.prototype;he.TypeIsObject(o)||(o=r);var i=x(o);for(var a in n)if(H(n,a)){var s=n[a];b(i,a,s,!0)}return i};if(String.fromCodePoint&&1!==String.fromCodePoint.length){var Le=String.fromCodePoint;ie(String,"fromCodePoint",(function(e){return he.Call(Le,this,arguments)}))}var De={fromCodePoint:function(e){for(var t,r=[],n=0,o=arguments.length;n<o;n++){if(t=Number(arguments[n]),!he.SameValue(t,he.ToInteger(t))||t<0||t>1114111)throw new RangeError("Invalid code point "+t);t<65536?C(r,String.fromCharCode(t)):(t-=65536,C(r,String.fromCharCode(55296+(t>>10))),C(r,String.fromCharCode(t%1024+56320)))}return r.join("")},raw:function(e){var t=he.ToObject(e,"bad callSite"),r=he.ToObject(t.raw,"bad raw value"),n=r.length,o=he.ToLength(n);if(o<=0)return"";for(var i,a,s,u,l=[],c=0;c<o&&(i=he.ToString(c),s=he.ToString(r[i]),C(l,s),!(c+1>=o));)a=c+1<arguments.length?arguments[c+1]:"",u=he.ToString(a),C(l,u),c+=1;return l.join("")}};String.raw&&"xy"!==String.raw({raw:{0:"x",1:"y",length:2}})&&ie(String,"raw",De.raw),v(String,De);var ze=function e(t,r){if(r<1)return"";if(r%2)return e(t,r-1)+t;var n=e(t,r/2);return n+n},Fe=1/0,qe={repeat:function(e){var t=he.ToString(he.RequireObjectCoercible(this)),r=he.ToInteger(e);if(r<0||r>=Fe)throw new RangeError("repeat count must be less than infinity and not overflow maximum string size");return ze(t,r)},startsWith:function(e){var t=he.ToString(he.RequireObjectCoercible(this));if(he.IsRegExp(e))throw new TypeError('Cannot call method "startsWith" with a regex');var r,n=he.ToString(e);arguments.length>1&&(r=arguments[1]);var o=N(he.ToInteger(r),0);return I(t,o,o+n.length)===n},endsWith:function(e){var t=he.ToString(he.RequireObjectCoercible(this));if(he.IsRegExp(e))throw new TypeError('Cannot call method "endsWith" with a regex');var r,n=he.ToString(e),o=t.length;arguments.length>1&&(r=arguments[1]);var i=void 0===r?o:he.ToInteger(r),a=L(N(i,0),o);return I(t,a-n.length,a)===n},includes:function(e){if(he.IsRegExp(e))throw new TypeError('"includes" does not accept a RegExp');var t,r=he.ToString(e);return arguments.length>1&&(t=arguments[1]),-1!==_(this,r,t)},codePointAt:function(e){var t=he.ToString(he.RequireObjectCoercible(this)),r=he.ToInteger(e),n=t.length;if(r>=0&&r<n){var o=t.charCodeAt(r);if(o<55296||o>56319||r+1===n)return o;var i=t.charCodeAt(r+1);return i<56320||i>57343?o:1024*(o-55296)+(i-56320)+65536}}};if(String.prototype.includes&&!1!=="a".includes("a",1/0)&&ie(String.prototype,"includes",qe.includes),String.prototype.startsWith&&String.prototype.endsWith){var $e=u((function(){return"/a/".startsWith(/a/)})),He=l((function(){return!1==="abc".startsWith("a",1/0)}));$e&&He||(ie(String.prototype,"startsWith",qe.startsWith),ie(String.prototype,"endsWith",qe.endsWith))}if(ae){var Ue=l((function(){var e=/a/;return e[J.match]=!1,"/a/".startsWith(e)}));Ue||ie(String.prototype,"startsWith",qe.startsWith);var Be=l((function(){var e=/a/;return e[J.match]=!1,"/a/".endsWith(e)}));Be||ie(String.prototype,"endsWith",qe.endsWith);var Ge=l((function(){var e=/a/;return e[J.match]=!1,"/a/".includes(e)}));Ge||ie(String.prototype,"includes",qe.includes)}v(String.prototype,qe);var We=["\t\n\v\f\r   ᠎    ","          \u2028","\u2029\ufeff"].join(""),Ze=new RegExp("(^["+We+"]+)|(["+We+"]+$)","g"),Ve=function(){return he.ToString(he.RequireObjectCoercible(this)).replace(Ze,"")},Je=["…","​","￾"].join(""),Ke=new RegExp("["+Je+"]","g"),Xe=/^[-+]0x[0-9a-f]+$/i,Ye=Je.trim().length!==Je.length;b(String.prototype,"trim",Ve,Ye);var Qe=function(e){return{value:e,done:0===arguments.length}},et=function(e){he.RequireObjectCoercible(e),this._s=he.ToString(e),this._i=0};et.prototype.next=function(){var e=this._s,t=this._i;if(void 0===e||t>=e.length)return this._s=void 0,Qe();var r,n,o=e.charCodeAt(t);return n=o<55296||o>56319||t+1===e.length?1:(r=e.charCodeAt(t+1))<56320||r>57343?1:2,this._i=t+n,Qe(e.substr(t,n))},Ce(et.prototype),Ce(String.prototype,(function(){return new et(this)}));var tt={from:function(e){var t,n,o,i=this;if(arguments.length>1&&(t=arguments[1]),void 0===t)n=!1;else{if(!he.IsCallable(t))throw new TypeError("Array.from: when provided, the second argument must be a function");arguments.length>2&&(o=arguments[2]),n=!0}var a,s,u,l=void 0!==(ne(e)||he.GetMethod(e,se));if(l){s=he.IsConstructor(i)?Object(new i):[];var c,f,p=he.GetIterator(e);for(u=0;!1!==(c=he.IteratorStep(p));){f=c.value;try{n&&(f=void 0===o?t(f,u):r(t,o,f,u)),s[u]=f}catch(e){throw he.IteratorClose(p,!0),e}u+=1}a=u}else{var h,d=he.ToObject(e);for(a=he.ToLength(d.length),s=he.IsConstructor(i)?Object(new i(a)):new Array(a),u=0;u<a;++u)h=d[u],n&&(h=void 0===o?t(h,u):r(t,o,h,u)),Re(s,u,h)}return s.length=a,s},of:function(){for(var e=arguments.length,t=this,r=i(t)||!he.IsCallable(t)?new Array(e):he.Construct(t,[e]),n=0;n<e;++n)Re(r,n,arguments[n]);return r.length=e,r}};v(Array,tt),Ie(Array),v((e=function(e,t){this.i=0,this.array=e,this.kind=t}).prototype,{next:function(){var t=this.i,r=this.array;if(!(this instanceof e))throw new TypeError("Not an ArrayIterator");if(void 0!==r)for(var n=he.ToLength(r.length);t<n;t++){var o,i=this.kind;return"key"===i?o=t:"value"===i?o=r[t]:"entry"===i&&(o=[t,r[t]]),this.i=t+1,Qe(o)}return this.array=void 0,Qe()}}),Ce(e.prototype);var rt=Array.of===tt.of||function(){var e=function(e){this.length=e};e.prototype=[];var t=Array.of.apply(e,[1,2]);return t instanceof e&&2===t.length}();rt||ie(Array,"of",tt.of);var nt={copyWithin:function(e,t){var r,n=he.ToObject(this),o=he.ToLength(n.length),i=he.ToInteger(e),a=he.ToInteger(t),s=i<0?N(o+i,0):L(i,o),u=a<0?N(o+a,0):L(a,o);arguments.length>2&&(r=arguments[2]);var l=void 0===r?o:he.ToInteger(r),c=l<0?N(o+l,0):L(l,o),f=L(c-u,o-s),p=1;for(u<s&&s<u+f&&(p=-1,u+=f-1,s+=f-1);f>0;)u in n?n[s]=n[u]:delete n[s],u+=p,s+=p,f-=1;return n},fill:function(e){var t,r;arguments.length>1&&(t=arguments[1]),arguments.length>2&&(r=arguments[2]);var n=he.ToObject(this),o=he.ToLength(n.length);t=he.ToInteger(void 0===t?0:t),r=he.ToInteger(void 0===r?o:r);for(var i=t<0?N(o+t,0):L(t,o),a=r<0?o+r:r,s=i;s<o&&s<a;++s)n[s]=e;return n},find:function(e){var t=he.ToObject(this),n=he.ToLength(t.length);if(!he.IsCallable(e))throw new TypeError("Array#find: predicate must be a function");for(var o,i=arguments.length>1?arguments[1]:null,a=0;a<n;a++)if(o=t[a],i){if(r(e,i,o,a,t))return o}else if(e(o,a,t))return o},findIndex:function(e){var t=he.ToObject(this),n=he.ToLength(t.length);if(!he.IsCallable(e))throw new TypeError("Array#findIndex: predicate must be a function");for(var o=arguments.length>1?arguments[1]:null,i=0;i<n;i++)if(o){if(r(e,o,t[i],i,t))return i}else if(e(t[i],i,t))return i;return-1},keys:function(){return new e(this,"key")},values:function(){return new e(this,"value")},entries:function(){return new e(this,"entry")}};if(Array.prototype.keys&&!he.IsCallable([1].keys().next)&&delete Array.prototype.keys,Array.prototype.entries&&!he.IsCallable([1].entries().next)&&delete Array.prototype.entries,Array.prototype.keys&&Array.prototype.entries&&!Array.prototype.values&&Array.prototype[se]&&(v(Array.prototype,{values:Array.prototype[se]}),oe.symbol(J.unscopables)&&(Array.prototype[J.unscopables].values=!0)),h&&Array.prototype.values&&"values"!==Array.prototype.values.name){var ot=Array.prototype.values;ie(Array.prototype,"values",(function(){return he.Call(ot,this,arguments)})),b(Array.prototype,se,Array.prototype.values,!0)}v(Array.prototype,nt),1/[!0].indexOf(!0,-0)<0&&b(Array.prototype,"indexOf",(function(e){var t=k(this,arguments);return 0===t&&1/t<0?0:t}),!0),Ce(Array.prototype,(function(){return this.values()})),Object.getPrototypeOf&&Ce(Object.getPrototypeOf([].values()));var it,at=l((function(){return 0===Array.from({length:-1}).length})),st=1===(it=Array.from([0].entries())).length&&i(it[0])&&0===it[0][0]&&0===it[0][1];at&&st||ie(Array,"from",tt.from);var ut=l((function(){return Array.from([0],void 0)}));if(!ut){var lt=Array.from;ie(Array,"from",(function(e){return arguments.length>1&&void 0!==arguments[1]?he.Call(lt,this,arguments):r(lt,this,e)}))}var ct=-(Math.pow(2,32)-1),ft=function(e,t){var n={length:ct};return n[t?(n.length>>>0)-1:0]=!0,l((function(){return r(e,n,(function(){throw new RangeError("should not reach here")}),[]),!0}))};if(!ft(Array.prototype.forEach)){var pt=Array.prototype.forEach;ie(Array.prototype,"forEach",(function(e){return he.Call(pt,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.map)){var ht=Array.prototype.map;ie(Array.prototype,"map",(function(e){return he.Call(ht,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.filter)){var dt=Array.prototype.filter;ie(Array.prototype,"filter",(function(e){return he.Call(dt,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.some)){var yt=Array.prototype.some;ie(Array.prototype,"some",(function(e){return he.Call(yt,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.every)){var gt=Array.prototype.every;ie(Array.prototype,"every",(function(e){return he.Call(gt,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.reduce)){var mt=Array.prototype.reduce;ie(Array.prototype,"reduce",(function(e){return he.Call(mt,this.length>=0?this:[],arguments)}),!0)}if(!ft(Array.prototype.reduceRight,!0)){var bt=Array.prototype.reduceRight;ie(Array.prototype,"reduceRight",(function(e){return he.Call(bt,this.length>=0?this:[],arguments)}),!0)}var vt=8!==Number("0o10"),wt=2!==Number("0b10"),Ot=m(Je,(function(e){return 0===Number(e+0+e)}));if(vt||wt||Ot){var St=Number,xt=/^0b[01]+$/i,Tt=/^0o[0-7]+$/i,jt=xt.test.bind(xt),Et=Tt.test.bind(Tt),At=function(e){var t;if("function"==typeof e.valueOf&&(t=e.valueOf(),oe.primitive(t)))return t;if("function"==typeof e.toString&&(t=e.toString(),oe.primitive(t)))return t;throw new TypeError("No default value")},_t=Ke.test.bind(Ke),kt=Xe.test.bind(Xe),Pt=function(){var e=function(t){var r;"string"==typeof(r=arguments.length>0?oe.primitive(t)?t:At(t,"number"):0)&&(r=he.Call(Ve,r),jt(r)?r=parseInt(I(r,2),2):Et(r)?r=parseInt(I(r,2),8):(_t(r)||kt(r))&&(r=NaN));var n=this,o=l((function(){return St.prototype.valueOf.call(n),!0}));return n instanceof e&&!o?new St(r):St(r)};return e}();ke(St,Pt,{}),v(Pt,{NaN:St.NaN,MAX_VALUE:St.MAX_VALUE,MIN_VALUE:St.MIN_VALUE,NEGATIVE_INFINITY:St.NEGATIVE_INFINITY,POSITIVE_INFINITY:St.POSITIVE_INFINITY}),Number=Pt,S.redefine(E,"Number",Pt)}var It=Math.pow(2,53)-1;v(Number,{MAX_SAFE_INTEGER:It,MIN_SAFE_INTEGER:-It,EPSILON:2220446049250313e-31,parseInt:E.parseInt,parseFloat:E.parseFloat,isFinite:Y,isInteger:function(e){return Y(e)&&he.ToInteger(e)===e},isSafeInteger:function(e){return Number.isInteger(e)&&z(e)<=Number.MAX_SAFE_INTEGER},isNaN:X}),b(Number,"parseInt",E.parseInt,Number.parseInt!==E.parseInt),1===[,1].find((function(){return!0}))&&ie(Array.prototype,"find",nt.find),0!==[,1].findIndex((function(){return!0}))&&ie(Array.prototype,"findIndex",nt.findIndex);var Ct,Mt,Rt,Nt=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable),Lt=function(e,t){p&&Nt(e,t)&&Object.defineProperty(e,t,{enumerable:!1})},Dt=function(){for(var e=Number(this),t=arguments.length,r=t-e,n=new Array(r<0?0:r),o=e;o<t;++o)n[o-e]=arguments[o];return n},zt=function(e){return function(t,r){return t[r]=e[r],t}},Ft=function(e,t){var r,n=a(Object(t));return he.IsCallable(Object.getOwnPropertySymbols)&&(r=g(Object.getOwnPropertySymbols(Object(t)),Nt(t))),y(P(n,r||[]),zt(t),e)},qt={assign:function(e,t){var r=he.ToObject(e,"Cannot convert undefined or null to object");return y(he.Call(Dt,1,arguments),Ft,r)},is:function(e,t){return he.SameValue(e,t)}},$t=Object.assign&&Object.preventExtensions&&function(){var e=Object.preventExtensions({1:2});try{Object.assign(e,"xy")}catch(t){return"y"===e[1]}}();if($t&&ie(Object,"assign",qt.assign),v(Object,qt),p){var Ht={setPrototypeOf:function(e,t){var n,o=function(e,t){return function(e,t){if(!he.TypeIsObject(e))throw new TypeError("cannot set prototype on a non-object");if(null!==t&&!he.TypeIsObject(t))throw new TypeError("can only set prototype to an object or null"+t)}(e,t),r(n,e,t),e};try{n=e.getOwnPropertyDescriptor(e.prototype,"__proto__").set,r(n,{},null)}catch(t){if(e.prototype!=={}.__proto__)return;n=function(e){this.__proto__=e},o.polyfill=o(o({},null),e.prototype)instanceof e}return o}(Object)};v(Object,Ht)}Object.setPrototypeOf&&Object.getPrototypeOf&&null!==Object.getPrototypeOf(Object.setPrototypeOf({},null))&&null===Object.getPrototypeOf(Object.create(null))&&(Ct=Object.create(null),Mt=Object.getPrototypeOf,Rt=Object.setPrototypeOf,Object.getPrototypeOf=function(e){var t=Mt(e);return t===Ct?null:t},Object.setPrototypeOf=function(e,t){return Rt(e,null===t?Ct:t)},Object.setPrototypeOf.polyfill=!1);var Ut=!u((function(){return Object.keys("foo")}));if(!Ut){var Bt=Object.keys;ie(Object,"keys",(function(e){return Bt(he.ToObject(e))})),a=Object.keys}var Gt=u((function(){return Object.keys(/a/g)}));if(Gt){var Wt=Object.keys;ie(Object,"keys",(function(e){if(oe.regex(e)){var t=[];for(var r in e)H(e,r)&&C(t,r);return t}return Wt(e)})),a=Object.keys}if(Object.getOwnPropertyNames){var Zt=!u((function(){return Object.getOwnPropertyNames("foo")}));if(!Zt){var Vt="object"==typeof window?Object.getOwnPropertyNames(window):[],Jt=Object.getOwnPropertyNames;ie(Object,"getOwnPropertyNames",(function(e){var t=he.ToObject(e);if("[object Window]"===w(t))try{return Jt(t)}catch(e){return P([],Vt)}return Jt(t)}))}}if(Object.getOwnPropertyDescriptor){var Kt=!u((function(){return Object.getOwnPropertyDescriptor("foo","bar")}));if(!Kt){var Xt=Object.getOwnPropertyDescriptor;ie(Object,"getOwnPropertyDescriptor",(function(e,t){return Xt(he.ToObject(e),t)}))}}if(Object.seal){var Yt=!u((function(){return Object.seal("foo")}));if(!Yt){var Qt=Object.seal;ie(Object,"seal",(function(e){return he.TypeIsObject(e)?Qt(e):e}))}}if(Object.isSealed){var er=!u((function(){return Object.isSealed("foo")}));if(!er){var tr=Object.isSealed;ie(Object,"isSealed",(function(e){return!he.TypeIsObject(e)||tr(e)}))}}if(Object.freeze){var rr=!u((function(){return Object.freeze("foo")}));if(!rr){var nr=Object.freeze;ie(Object,"freeze",(function(e){return he.TypeIsObject(e)?nr(e):e}))}}if(Object.isFrozen){var or=!u((function(){return Object.isFrozen("foo")}));if(!or){var ir=Object.isFrozen;ie(Object,"isFrozen",(function(e){return!he.TypeIsObject(e)||ir(e)}))}}if(Object.preventExtensions){var ar=!u((function(){return Object.preventExtensions("foo")}));if(!ar){var sr=Object.preventExtensions;ie(Object,"preventExtensions",(function(e){return he.TypeIsObject(e)?sr(e):e}))}}if(Object.isExtensible){var ur=!u((function(){return Object.isExtensible("foo")}));if(!ur){var lr=Object.isExtensible;ie(Object,"isExtensible",(function(e){return!!he.TypeIsObject(e)&&lr(e)}))}}if(Object.getPrototypeOf){var cr=!u((function(){return Object.getPrototypeOf("foo")}));if(!cr){var fr=Object.getPrototypeOf;ie(Object,"getPrototypeOf",(function(e){return fr(he.ToObject(e))}))}}var pr,hr=p&&((pr=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags"))&&he.IsCallable(pr.get));if(p&&!hr){var dr=function(){if(!he.TypeIsObject(this))throw new TypeError("Method called on incompatible type: must be an object.");var e="";return this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.unicode&&(e+="u"),this.sticky&&(e+="y"),e};S.getter(RegExp.prototype,"flags",dr)}var yr,gr=p&&l((function(){return"/a/i"===String(new RegExp(/a/g,"i"))})),mr=ae&&p&&((yr=/./)[J.match]=!1,RegExp(yr)===yr),br=l((function(){return"/abc/"===RegExp.prototype.toString.call({source:"abc"})})),vr=br&&l((function(){return"/a/b"===RegExp.prototype.toString.call({source:"a",flags:"b"})}));if(!br||!vr){var wr=RegExp.prototype.toString;b(RegExp.prototype,"toString",(function(){var e=he.RequireObjectCoercible(this);return oe.regex(e)?r(wr,e):"/"+ce(e.source)+"/"+ce(e.flags)}),!0),S.preserveToString(RegExp.prototype.toString,wr)}if(p&&(!gr||mr)){var Or=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags").get,Sr=Object.getOwnPropertyDescriptor(RegExp.prototype,"source")||{},xr=function(){return this.source},Tr=he.IsCallable(Sr.get)?Sr.get:xr,jr=RegExp,Er=function e(t,r){var n=he.IsRegExp(t);return this instanceof e||!n||void 0!==r||t.constructor!==e?oe.regex(t)?new e(he.Call(Tr,t),void 0===r?he.Call(Or,t):r):(n&&(t.source,void 0===r&&t.flags),new jr(t,r)):t};ke(jr,Er,{$input:!0}),RegExp=Er,S.redefine(E,"RegExp",Er)}if(p){var Ar={input:"$_",lastMatch:"$&",lastParen:"$+",leftContext:"$`",rightContext:"$'"};d(a(Ar),(function(e){e in RegExp&&!(Ar[e]in RegExp)&&S.getter(RegExp,Ar[e],(function(){return RegExp[e]}))}))}Ie(RegExp);var _r=1/Number.EPSILON,kr=function(e){return e+_r-_r},Pr=Math.pow(2,-23),Ir=Math.pow(2,127)*(2-Pr),Cr=Math.pow(2,-126),Mr=Math.E,Rr=Math.LOG2E,Nr=Math.LOG10E,Lr=Number.prototype.clz;delete Number.prototype.clz;var Dr={acosh:function(e){var t=Number(e);if(X(t)||e<1)return NaN;if(1===t)return 0;if(t===1/0)return t;var r=1/(t*t);if(t<2)return ee(t-1+$(1-r)*t);var n=t/2;return ee(n+$(1-r)*n-1)+1/Rr},asinh:function(e){var t=Number(e);if(0===t||!A(t))return t;var r=z(t),n=r*r,o=Q(t);return r<1?o*ee(r+n/($(n+1)+1)):o*(ee(r/2+$(1+1/n)*r/2-1)+1/Rr)},atanh:function(e){var t=Number(e);if(0===t)return t;if(-1===t)return-1/0;if(1===t)return 1/0;if(X(t)||t<-1||t>1)return NaN;var r=z(t);return Q(t)*ee(2*r/(1-r))/2},cbrt:function(e){var t=Number(e);if(0===t)return t;var r,n=t<0;return n&&(t=-t),r=t===1/0?1/0:(t/((r=F(q(t)/3))*r)+2*r)/3,n?-r:r},clz32:function(e){var t=Number(e),r=he.ToUint32(t);return 0===r?32:Lr?he.Call(Lr,r):31-D(q(r+.5)*Rr)},cosh:function(e){var t=Number(e);if(0===t)return 1;if(X(t))return NaN;if(!A(t))return 1/0;var r=F(z(t)-1);return(r+1/(r*Mr*Mr))*(Mr/2)},expm1:function(e){var t=Number(e);if(t===-1/0)return-1;if(!A(t)||0===t)return t;if(z(t)>.5)return F(t)-1;for(var r=t,n=0,o=1;n+r!==n;)n+=r,r*=t/(o+=1);return n},hypot:function(e,t){for(var r=0,n=0,o=0;o<arguments.length;++o){var i=z(Number(arguments[o]));n<i?(r*=n/i*(n/i),r+=1,n=i):r+=i>0?i/n*(i/n):i}return n===1/0?1/0:n*$(r)},log2:function(e){return q(e)*Rr},log10:function(e){return q(e)*Nr},log1p:ee,sign:Q,sinh:function(e){var t=Number(e);if(!A(t)||0===t)return t;var r=z(t);if(r<1){var n=Math.expm1(r);return Q(t)*n*(1+1/(n+1))/2}var o=F(r-1);return Q(t)*(o-1/(o*Mr*Mr))*(Mr/2)},tanh:function(e){var t=Number(e);return X(t)||0===t?t:t>=20?1:t<=-20?-1:(Math.expm1(t)-Math.expm1(-t))/(F(t)+F(-t))},trunc:function(e){var t=Number(e);return t<0?-D(-t):D(t)},imul:function(e,t){var r=he.ToUint32(e),n=he.ToUint32(t),o=65535&r,i=65535&n;return o*i+((r>>>16&65535)*i+o*(n>>>16&65535)<<16>>>0)|0},fround:function(e){var t=Number(e);if(0===t||t===1/0||t===-1/0||X(t))return t;var r=Q(t),n=z(t);if(n<Cr)return r*kr(n/Cr/Pr)*Cr*Pr;var o=(1+Pr/Number.EPSILON)*n,i=o-(o-n);return i>Ir||X(i)?r*(1/0):r*i}},zr=function(e,t,r){return z(1-e/t)/Number.EPSILON<(r||8)};v(Math,Dr),b(Math,"sinh",Dr.sinh,Math.sinh(710)===1/0),b(Math,"cosh",Dr.cosh,Math.cosh(710)===1/0),b(Math,"log1p",Dr.log1p,-1e-17!==Math.log1p(-1e-17)),b(Math,"asinh",Dr.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7)),b(Math,"asinh",Dr.asinh,Math.asinh(1e300)===1/0),b(Math,"atanh",Dr.atanh,0===Math.atanh(1e-300)),b(Math,"tanh",Dr.tanh,-2e-17!==Math.tanh(-2e-17)),b(Math,"acosh",Dr.acosh,Math.acosh(Number.MAX_VALUE)===1/0),b(Math,"acosh",Dr.acosh,!zr(Math.acosh(1+Number.EPSILON),Math.sqrt(2*Number.EPSILON))),b(Math,"cbrt",Dr.cbrt,!zr(Math.cbrt(1e-300),1e-100)),b(Math,"sinh",Dr.sinh,-2e-17!==Math.sinh(-2e-17));var Fr=Math.expm1(10);b(Math,"expm1",Dr.expm1,Fr>22025.465794806718||Fr<22025.465794806718);var qr=Math.round,$r=0===Math.round(.5-Number.EPSILON/4)&&1===Math.round(Number.EPSILON/3.99-.5),Hr=_r+1,Ur=2*_r-1,Br=[Hr,Ur].every((function(e){return Math.round(e)===e}));b(Math,"round",(function(e){var t=D(e);return e-t<.5?t:-1===t?-0:t+1}),!$r||!Br),S.preserveToString(Math.round,qr);var Gr=Math.imul;-5!==Math.imul(4294967295,5)&&(Math.imul=Dr.imul,S.preserveToString(Math.imul,Gr)),2!==Math.imul.length&&ie(Math,"imul",(function(e,t){return he.Call(Gr,Math,arguments)}));var Wr,Zr,Vr=function(){var e=E.setTimeout;if("function"==typeof e||"object"==typeof e){he.IsPromise=function(e){return!!he.TypeIsObject(e)&&void 0!==e._promise};var t,n=function(e){if(!he.IsConstructor(e))throw new TypeError("Bad promise constructor");var t=this;if(t.resolve=void 0,t.reject=void 0,t.promise=new e((function(e,r){if(void 0!==t.resolve||void 0!==t.reject)throw new TypeError("Bad Promise implementation!");t.resolve=e,t.reject=r})),!he.IsCallable(t.resolve)||!he.IsCallable(t.reject))throw new TypeError("Bad promise constructor")};"undefined"!=typeof window&&he.IsCallable(window.postMessage)&&(t=function(){var e=[];return window.addEventListener("message",(function(t){if(t.source===window&&"zero-timeout-message"===t.data){if(t.stopPropagation(),0===e.length)return;R(e)()}}),!0),function(t){C(e,t),window.postMessage("zero-timeout-message","*")}});var i,a,s,u,l=he.IsCallable(E.setImmediate)?E.setImmediate:"object"==typeof o&&o.nextTick?o.nextTick:(i=E.Promise,(a=i&&i.resolve&&i.resolve())&&function(e){return a.then(e)}||(he.IsCallable(t)?t():function(t){e(t,0)})),c=function(e){return e},f=function(e){throw e},p={},h=function(e,t,r){l((function(){d(e,t,r)}))},d=function(e,t,r){var n,o;if(t===p)return e(r);try{n=e(r),o=t.resolve}catch(e){n=e,o=t.reject}o(n)},y=function(e,t){var r=e._promise,n=r.reactionLength;if(n>0&&(h(r.fulfillReactionHandler0,r.reactionCapability0,t),r.fulfillReactionHandler0=void 0,r.rejectReactions0=void 0,r.reactionCapability0=void 0,n>1))for(var o=1,i=0;o<n;o++,i+=3)h(r[i+0],r[i+2],t),e[i+0]=void 0,e[i+1]=void 0,e[i+2]=void 0;r.result=t,r.state=1,r.reactionLength=0},g=function(e,t){var r=e._promise,n=r.reactionLength;if(n>0&&(h(r.rejectReactionHandler0,r.reactionCapability0,t),r.fulfillReactionHandler0=void 0,r.rejectReactions0=void 0,r.reactionCapability0=void 0,n>1))for(var o=1,i=0;o<n;o++,i+=3)h(r[i+1],r[i+2],t),e[i+0]=void 0,e[i+1]=void 0,e[i+2]=void 0;r.result=t,r.state=2,r.reactionLength=0},m=function(e){var t=!1;return{resolve:function(r){var n;if(!t){if(t=!0,r===e)return g(e,new TypeError("Self resolution"));if(!he.TypeIsObject(r))return y(e,r);try{n=r.then}catch(t){return g(e,t)}if(!he.IsCallable(n))return y(e,r);l((function(){w(e,r,n)}))}},reject:function(r){if(!t)return t=!0,g(e,r)}}},b=function(e,t,n,o){e===u?r(e,t,n,o,p):r(e,t,n,o)},w=function(e,t,r){var n=m(e),o=n.resolve,i=n.reject;try{b(r,t,o,i)}catch(e){i(e)}},O=function(){var e=function(t){if(!(this instanceof e))throw new TypeError('Constructor Promise requires "new"');if(this&&this._promise)throw new TypeError("Bad construction");if(!he.IsCallable(t))throw new TypeError("not a valid resolver");var r=Ne(this,e,s,{_promise:{result:void 0,state:0,reactionLength:0,fulfillReactionHandler0:void 0,rejectReactionHandler0:void 0,reactionCapability0:void 0}}),n=m(r),o=n.reject;try{t(n.resolve,o)}catch(e){o(e)}return r};return e}();s=O.prototype;var S=function(e,t,r,n){var o=!1;return function(i){o||(o=!0,t[e]=i,0==--n.count&&(0,r.resolve)(t))}};return v(O,{all:function(e){var t=this;if(!he.TypeIsObject(t))throw new TypeError("Promise is not object");var r,o,i=new n(t);try{return function(e,t,r){for(var n,o,i=e.iterator,a=[],s={count:1},u=0;;){try{if(!1===(n=he.IteratorStep(i))){e.done=!0;break}o=n.value}catch(t){throw e.done=!0,t}a[u]=void 0;var l=t.resolve(o),c=S(u,a,r,s);s.count+=1,b(l.then,l,c,r.reject),u+=1}return 0==--s.count&&(0,r.resolve)(a),r.promise}(o={iterator:r=he.GetIterator(e),done:!1},t,i)}catch(e){var a=e;if(o&&!o.done)try{he.IteratorClose(r,!0)}catch(e){a=e}return(0,i.reject)(a),i.promise}},race:function(e){var t=this;if(!he.TypeIsObject(t))throw new TypeError("Promise is not object");var r,o,i=new n(t);try{return function(e,t,r){for(var n,o,i,a=e.iterator;;){try{if(!1===(n=he.IteratorStep(a))){e.done=!0;break}o=n.value}catch(t){throw e.done=!0,t}i=t.resolve(o),b(i.then,i,r.resolve,r.reject)}return r.promise}(o={iterator:r=he.GetIterator(e),done:!1},t,i)}catch(e){var a=e;if(o&&!o.done)try{he.IteratorClose(r,!0)}catch(e){a=e}return(0,i.reject)(a),i.promise}},reject:function(e){if(!he.TypeIsObject(this))throw new TypeError("Bad promise constructor");var t=new n(this);return(0,t.reject)(e),t.promise},resolve:function(e){var t=this;if(!he.TypeIsObject(t))throw new TypeError("Bad promise constructor");if(he.IsPromise(e)&&e.constructor===t)return e;var r=new n(t);return(0,r.resolve)(e),r.promise}}),v(s,{catch:function(e){return this.then(null,e)},then:function(e,t){var r=this;if(!he.IsPromise(r))throw new TypeError("not a promise");var o,i=he.SpeciesConstructor(r,O),a=arguments.length>2&&arguments[2]===p;o=a&&i===O?p:new n(i);var s,u=he.IsCallable(e)?e:c,l=he.IsCallable(t)?t:f,d=r._promise;if(0===d.state){if(0===d.reactionLength)d.fulfillReactionHandler0=u,d.rejectReactionHandler0=l,d.reactionCapability0=o;else{var y=3*(d.reactionLength-1);d[y+0]=u,d[y+1]=l,d[y+2]=o}d.reactionLength+=1}else if(1===d.state)s=d.result,h(u,o,s);else{if(2!==d.state)throw new TypeError("unexpected Promise state");s=d.result,h(l,o,s)}return o.promise}}),p=new n(O),u=s.then,O}}();if(E.Promise&&(delete E.Promise.accept,delete E.Promise.defer,delete E.Promise.prototype.chain),"function"==typeof Vr){v(E,{Promise:Vr});var Jr=T(E.Promise,(function(e){return e.resolve(42).then((function(){}))instanceof e})),Kr=!u((function(){return E.Promise.reject(42).then(null,5).then(null,U)})),Xr=u((function(){return E.Promise.call(3,U)})),Yr=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);try{r.then(null,U).then(null,U)}catch(e){return!0}return t===r}(E.Promise),Qr=p&&(Wr=0,Zr=Object.defineProperty({},"then",{get:function(){Wr+=1}}),Promise.resolve(Zr),1===Wr),en=function e(t){var r=new Promise(t);t(3,(function(){})),this.then=r.then,this.constructor=e};en.prototype=Promise.prototype,en.all=Promise.all;var tn=l((function(){return!!en.all([1,2])}));if(Jr&&Kr&&Xr&&!Yr&&Qr&&!tn||(Promise=Vr,ie(E,"Promise",Vr)),1!==Promise.all.length){var rn=Promise.all;ie(Promise,"all",(function(e){return he.Call(rn,this,arguments)}))}if(1!==Promise.race.length){var nn=Promise.race;ie(Promise,"race",(function(e){return he.Call(nn,this,arguments)}))}if(1!==Promise.resolve.length){var on=Promise.resolve;ie(Promise,"resolve",(function(e){return he.Call(on,this,arguments)}))}if(1!==Promise.reject.length){var an=Promise.reject;ie(Promise,"reject",(function(e){return he.Call(an,this,arguments)}))}Lt(Promise,"all"),Lt(Promise,"race"),Lt(Promise,"resolve"),Lt(Promise,"reject"),Ie(Promise)}var sn,un,ln=function(e){var t=a(y(e,(function(e,t){return e[t]=!0,e}),{}));return e.join(":")===t.join(":")},cn=ln(["z","a","bb"]),fn=ln(["z",1,"a","3",2]);if(p){var pn=function(e,t){return t||cn?pe(e)?"^"+he.ToString(e):"string"==typeof e?"$"+e:"number"==typeof e?fn?e:"n"+e:"boolean"==typeof e?"b"+e:null:null},hn=function(){return Object.create?Object.create(null):{}},dn=function(e,t,n){if(i(n)||oe.string(n))d(n,(function(e){if(!he.TypeIsObject(e))throw new TypeError("Iterator value "+e+" is not an entry object");t.set(e[0],e[1])}));else if(n instanceof e)r(e.prototype.forEach,n,(function(e,r){t.set(r,e)}));else{var o,a;if(!pe(n)){if(a=t.set,!he.IsCallable(a))throw new TypeError("bad map");o=he.GetIterator(n)}if(void 0!==o)for(;;){var s=he.IteratorStep(o);if(!1===s)break;var u=s.value;try{if(!he.TypeIsObject(u))throw new TypeError("Iterator value "+u+" is not an entry object");r(a,t,u[0],u[1])}catch(e){throw he.IteratorClose(o,!0),e}}}},yn=function(e,t,n){if(i(n)||oe.string(n))d(n,(function(e){t.add(e)}));else if(n instanceof e)r(e.prototype.forEach,n,(function(e){t.add(e)}));else{var o,a;if(!pe(n)){if(a=t.add,!he.IsCallable(a))throw new TypeError("bad set");o=he.GetIterator(n)}if(void 0!==o)for(;;){var s=he.IteratorStep(o);if(!1===s)break;var u=s.value;try{r(a,t,u)}catch(e){throw he.IteratorClose(o,!0),e}}}},gn={Map:function(){var e={},t=function(e,t){this.key=e,this.value=t,this.next=null,this.prev=null};t.prototype.isRemoved=function(){return this.key===e};var n,o=function(e,t){if(!he.TypeIsObject(e)||!function(e){return!!e._es6map}(e))throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+he.ToString(e))},i=function(e,t){o(e,"[[MapIterator]]"),this.head=e._head,this.i=this.head,this.kind=t};Ce(i.prototype={isMapIterator:!0,next:function(){if(!this.isMapIterator)throw new TypeError("Not a MapIterator");var e,t=this.i,r=this.kind,n=this.head;if(void 0===this.i)return Qe();for(;t.isRemoved()&&t!==n;)t=t.prev;for(;t.next!==n;)if(!(t=t.next).isRemoved())return e="key"===r?t.key:"value"===r?t.value:[t.key,t.value],this.i=t,Qe(e);return this.i=void 0,Qe()}});var a=function e(){if(!(this instanceof e))throw new TypeError('Constructor Map requires "new"');if(this&&this._es6map)throw new TypeError("Bad construction");var r=Ne(this,e,n,{_es6map:!0,_head:null,_map:B?new B:null,_size:0,_storage:hn()}),o=new t(null,null);return o.next=o.prev=o,r._head=o,arguments.length>0&&dn(e,r,arguments[0]),r};return n=a.prototype,S.getter(n,"size",(function(){if(void 0===this._size)throw new TypeError("size method called on incompatible Map");return this._size})),v(n,{get:function(e){var t;o(this,"get");var r=pn(e,!0);if(null!==r)return(t=this._storage[r])?t.value:void 0;if(this._map)return(t=W.call(this._map,e))?t.value:void 0;for(var n=this._head,i=n;(i=i.next)!==n;)if(he.SameValueZero(i.key,e))return i.value},has:function(e){o(this,"has");var t=pn(e,!0);if(null!==t)return void 0!==this._storage[t];if(this._map)return Z.call(this._map,e);for(var r=this._head,n=r;(n=n.next)!==r;)if(he.SameValueZero(n.key,e))return!0;return!1},set:function(e,r){o(this,"set");var n,i=this._head,a=i,s=pn(e,!0);if(null!==s){if(void 0!==this._storage[s])return this._storage[s].value=r,this;n=this._storage[s]=new t(e,r),a=i.prev}else this._map&&(Z.call(this._map,e)?W.call(this._map,e).value=r:(n=new t(e,r),V.call(this._map,e,n),a=i.prev));for(;(a=a.next)!==i;)if(he.SameValueZero(a.key,e))return a.value=r,this;return n=n||new t(e,r),he.SameValue(-0,e)&&(n.key=0),n.next=this._head,n.prev=this._head.prev,n.prev.next=n,n.next.prev=n,this._size+=1,this},delete:function(t){o(this,"delete");var r=this._head,n=r,i=pn(t,!0);if(null!==i){if(void 0===this._storage[i])return!1;n=this._storage[i].prev,delete this._storage[i]}else if(this._map){if(!Z.call(this._map,t))return!1;n=W.call(this._map,t).prev,G.call(this._map,t)}for(;(n=n.next)!==r;)if(he.SameValueZero(n.key,t))return n.key=e,n.value=e,n.prev.next=n.next,n.next.prev=n.prev,this._size-=1,!0;return!1},clear:function(){o(this,"clear"),this._map=B?new B:null,this._size=0,this._storage=hn();for(var t=this._head,r=t,n=r.next;(r=n)!==t;)r.key=e,r.value=e,n=r.next,r.next=r.prev=t;t.next=t.prev=t},keys:function(){return o(this,"keys"),new i(this,"key")},values:function(){return o(this,"values"),new i(this,"value")},entries:function(){return o(this,"entries"),new i(this,"key+value")},forEach:function(e){o(this,"forEach");for(var t=arguments.length>1?arguments[1]:null,n=this.entries(),i=n.next();!i.done;i=n.next())t?r(e,t,i.value[1],i.value[0],this):e(i.value[1],i.value[0],this)}}),Ce(n,n.entries),a}(),Set:function(){var e,t=function(e,t){if(!he.TypeIsObject(e)||!function(e){return e._es6set&&void 0!==e._storage}(e))throw new TypeError("Set.prototype."+t+" called on incompatible receiver "+he.ToString(e))},n=function t(){if(!(this instanceof t))throw new TypeError('Constructor Set requires "new"');if(this&&this._es6set)throw new TypeError("Bad construction");var r=Ne(this,t,e,{_es6set:!0,"[[SetData]]":null,_storage:hn()});if(!r._es6set)throw new TypeError("bad set");return arguments.length>0&&yn(t,r,arguments[0]),r};e=n.prototype;var o=function(e){if(!e["[[SetData]]"]){var t=new gn.Map;e["[[SetData]]"]=t,d(a(e._storage),(function(e){var r=function(e){var t=e;if("^null"===t)return null;if("^undefined"!==t){var r=t.charAt(0);return"$"===r?I(t,1):"n"===r?+I(t,1):"b"===r?"btrue"===t:+t}}(e);t.set(r,r)})),e["[[SetData]]"]=t}e._storage=null};S.getter(n.prototype,"size",(function(){return t(this,"size"),this._storage?a(this._storage).length:(o(this),this["[[SetData]]"].size)})),v(n.prototype,{has:function(e){var r;return t(this,"has"),this._storage&&null!==(r=pn(e))?!!this._storage[r]:(o(this),this["[[SetData]]"].has(e))},add:function(e){var r;return t(this,"add"),this._storage&&null!==(r=pn(e))?(this._storage[r]=!0,this):(o(this),this["[[SetData]]"].set(e,e),this)},delete:function(e){var r;if(t(this,"delete"),this._storage&&null!==(r=pn(e))){var n=H(this._storage,r);return delete this._storage[r]&&n}return o(this),this["[[SetData]]"].delete(e)},clear:function(){t(this,"clear"),this._storage&&(this._storage=hn()),this["[[SetData]]"]&&this["[[SetData]]"].clear()},values:function(){return t(this,"values"),o(this),new i(this["[[SetData]]"].values())},entries:function(){return t(this,"entries"),o(this),new i(this["[[SetData]]"].entries())},forEach:function(e){t(this,"forEach");var n=arguments.length>1?arguments[1]:null,i=this;o(i),this["[[SetData]]"].forEach((function(t,o){n?r(e,n,o,o,i):e(o,o,i)}))}}),b(n.prototype,"keys",n.prototype.values,!0),Ce(n.prototype,n.prototype.values);var i=function(e){this.it=e};return i.prototype={isSetIterator:!0,next:function(){if(!this.isSetIterator)throw new TypeError("Not a SetIterator");return this.it.next()}},Ce(i.prototype),n}()},mn=E.Set&&!Set.prototype.delete&&Set.prototype.remove&&Set.prototype.items&&Set.prototype.map&&Array.isArray((new Set).keys);if(mn&&(E.Set=gn.Set),E.Map||E.Set){var bn=l((function(){return 2===new Map([[1,2]]).get(1)}));bn||(E.Map=function e(){if(!(this instanceof e))throw new TypeError('Constructor Map requires "new"');var t=new B;return arguments.length>0&&dn(e,t,arguments[0]),delete t.constructor,Object.setPrototypeOf(t,E.Map.prototype),t},E.Map.prototype=x(B.prototype),b(E.Map.prototype,"constructor",E.Map,!0),S.preserveToString(E.Map,B));var vn=new Map,wn=((un=new Map([[1,0],[2,0],[3,0],[4,0]])).set(-0,un),un.get(0)===un&&un.get(-0)===un&&un.has(0)&&un.has(-0)),On=vn.set(1,2)===vn;wn&&On||ie(Map.prototype,"set",(function(e,t){return r(V,this,0===e?0:e,t),this})),wn||(v(Map.prototype,{get:function(e){return r(W,this,0===e?0:e)},has:function(e){return r(Z,this,0===e?0:e)}},!0),S.preserveToString(Map.prototype.get,W),S.preserveToString(Map.prototype.has,Z));var Sn=new Set,xn=Set.prototype.delete&&Set.prototype.add&&Set.prototype.has&&((sn=Sn).delete(0),sn.add(-0),!sn.has(0)),Tn=Sn.add(1)===Sn;if(!xn||!Tn){var jn=Set.prototype.add;Set.prototype.add=function(e){return r(jn,this,0===e?0:e),this},S.preserveToString(Set.prototype.add,jn)}if(!xn){var En=Set.prototype.has;Set.prototype.has=function(e){return r(En,this,0===e?0:e)},S.preserveToString(Set.prototype.has,En);var An=Set.prototype.delete;Set.prototype.delete=function(e){return r(An,this,0===e?0:e)},S.preserveToString(Set.prototype.delete,An)}var _n=T(E.Map,(function(e){var t=new e([]);return t.set(42,42),t instanceof e})),kn=Object.setPrototypeOf&&!_n,Pn=function(){try{return!(E.Map()instanceof E.Map)}catch(e){return e instanceof TypeError}}();0===E.Map.length&&!kn&&Pn||(E.Map=function e(){if(!(this instanceof e))throw new TypeError('Constructor Map requires "new"');var t=new B;return arguments.length>0&&dn(e,t,arguments[0]),delete t.constructor,Object.setPrototypeOf(t,e.prototype),t},E.Map.prototype=B.prototype,b(E.Map.prototype,"constructor",E.Map,!0),S.preserveToString(E.Map,B));var In=T(E.Set,(function(e){var t=new e([]);return t.add(42,42),t instanceof e})),Cn=Object.setPrototypeOf&&!In,Mn=function(){try{return!(E.Set()instanceof E.Set)}catch(e){return e instanceof TypeError}}();if(0!==E.Set.length||Cn||!Mn){var Rn=E.Set;E.Set=function e(){if(!(this instanceof e))throw new TypeError('Constructor Set requires "new"');var t=new Rn;return arguments.length>0&&yn(e,t,arguments[0]),delete t.constructor,Object.setPrototypeOf(t,e.prototype),t},E.Set.prototype=Rn.prototype,b(E.Set.prototype,"constructor",E.Set,!0),S.preserveToString(E.Set,Rn)}var Nn=new E.Map,Ln=!l((function(){return Nn.keys().next().done}));if(("function"!=typeof E.Map.prototype.clear||0!==(new E.Set).size||0!==Nn.size||"function"!=typeof E.Map.prototype.keys||"function"!=typeof E.Set.prototype.keys||"function"!=typeof E.Map.prototype.forEach||"function"!=typeof E.Set.prototype.forEach||c(E.Map)||c(E.Set)||"function"!=typeof Nn.keys().next||Ln||!_n)&&v(E,{Map:gn.Map,Set:gn.Set},!0),E.Set.prototype.keys!==E.Set.prototype.values&&b(E.Set.prototype,"keys",E.Set.prototype.values,!0),Ce(Object.getPrototypeOf((new E.Map).keys())),Ce(Object.getPrototypeOf((new E.Set).keys())),h&&"has"!==E.Set.prototype.has.name){var Dn=E.Set.prototype.has;ie(E.Set.prototype,"has",(function(e){return r(Dn,this,e)}))}}v(E,gn),Ie(E.Map),Ie(E.Set)}var zn=function(e){if(!he.TypeIsObject(e))throw new TypeError("target must be an object")},Fn={apply:function(){return he.Call(he.Call,null,arguments)},construct:function(e,t){if(!he.IsConstructor(e))throw new TypeError("First argument must be a constructor.");var r=arguments.length>2?arguments[2]:e;if(!he.IsConstructor(r))throw new TypeError("new.target must be a constructor.");return he.Construct(e,t,r,"internal")},deleteProperty:function(e,t){if(zn(e),p){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable)return!1}return delete e[t]},has:function(e,t){return zn(e),t in e}};Object.getOwnPropertyNames&&Object.assign(Fn,{ownKeys:function(e){zn(e);var t=Object.getOwnPropertyNames(e);return he.IsCallable(Object.getOwnPropertySymbols)&&M(t,Object.getOwnPropertySymbols(e)),t}});var qn=function(e){return!u(e)};if(Object.preventExtensions&&Object.assign(Fn,{isExtensible:function(e){return zn(e),Object.isExtensible(e)},preventExtensions:function(e){return zn(e),qn((function(){return Object.preventExtensions(e)}))}}),p){var $n=function(e,t,r){var n=Object.getOwnPropertyDescriptor(e,t);if(!n){var o=Object.getPrototypeOf(e);if(null===o)return;return $n(o,t,r)}return"value"in n?n.value:n.get?he.Call(n.get,r):void 0},Hn=function(e,t,n,o){var i=Object.getOwnPropertyDescriptor(e,t);if(!i){var a=Object.getPrototypeOf(e);if(null!==a)return Hn(a,t,n,o);i={value:void 0,writable:!0,enumerable:!0,configurable:!0}}return"value"in i?!!i.writable&&!!he.TypeIsObject(o)&&(Object.getOwnPropertyDescriptor(o,t)?le.defineProperty(o,t,{value:n}):le.defineProperty(o,t,{value:n,writable:!0,enumerable:!0,configurable:!0})):!!i.set&&(r(i.set,o,n),!0)};Object.assign(Fn,{defineProperty:function(e,t,r){return zn(e),qn((function(){return Object.defineProperty(e,t,r)}))},getOwnPropertyDescriptor:function(e,t){return zn(e),Object.getOwnPropertyDescriptor(e,t)},get:function(e,t){zn(e);var r=arguments.length>2?arguments[2]:e;return $n(e,t,r)},set:function(e,t,r){zn(e);var n=arguments.length>3?arguments[3]:e;return Hn(e,t,r,n)}})}if(Object.getPrototypeOf){var Un=Object.getPrototypeOf;Fn.getPrototypeOf=function(e){return zn(e),Un(e)}}if(Object.setPrototypeOf&&Fn.getPrototypeOf){var Bn=function(e,t){for(var r=t;r;){if(e===r)return!0;r=Fn.getPrototypeOf(r)}return!1};Object.assign(Fn,{setPrototypeOf:function(e,t){if(zn(e),null!==t&&!he.TypeIsObject(t))throw new TypeError("proto must be an object or null");return t===le.getPrototypeOf(e)||!(le.isExtensible&&!le.isExtensible(e))&&!Bn(e,t)&&(Object.setPrototypeOf(e,t),!0)}})}var Gn=function(e,t){he.IsCallable(E.Reflect[e])?l((function(){return E.Reflect[e](1),E.Reflect[e](NaN),E.Reflect[e](!0),!0}))&&ie(E.Reflect,e,t):b(E.Reflect,e,t)};Object.keys(Fn).forEach((function(e){Gn(e,Fn[e])}));var Wn=E.Reflect.getPrototypeOf;if(h&&Wn&&"getPrototypeOf"!==Wn.name&&ie(E.Reflect,"getPrototypeOf",(function(e){return r(Wn,E.Reflect,e)})),E.Reflect.setPrototypeOf&&l((function(){return E.Reflect.setPrototypeOf(1,{}),!0}))&&ie(E.Reflect,"setPrototypeOf",Fn.setPrototypeOf),E.Reflect.defineProperty&&(l((function(){var e=!E.Reflect.defineProperty(1,"test",{value:1}),t="function"!=typeof Object.preventExtensions||!E.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t}))||ie(E.Reflect,"defineProperty",Fn.defineProperty)),E.Reflect.construct&&(l((function(){var e=function(){};return E.Reflect.construct((function(){}),[],e)instanceof e}))||ie(E.Reflect,"construct",Fn.construct)),"Invalid Date"!==String(new Date(NaN))){var Zn=Date.prototype.toString,Vn=function(){var e=+this;return e!=e?"Invalid Date":he.Call(Zn,this)};ie(Date.prototype,"toString",Vn)}var Jn={anchor:function(e){return he.CreateHTML(this,"a","name",e)},big:function(){return he.CreateHTML(this,"big","","")},blink:function(){return he.CreateHTML(this,"blink","","")},bold:function(){return he.CreateHTML(this,"b","","")},fixed:function(){return he.CreateHTML(this,"tt","","")},fontcolor:function(e){return he.CreateHTML(this,"font","color",e)},fontsize:function(e){return he.CreateHTML(this,"font","size",e)},italics:function(){return he.CreateHTML(this,"i","","")},link:function(e){return he.CreateHTML(this,"a","href",e)},small:function(){return he.CreateHTML(this,"small","","")},strike:function(){return he.CreateHTML(this,"strike","","")},sub:function(){return he.CreateHTML(this,"sub","","")},sup:function(){return he.CreateHTML(this,"sup","","")}};d(Object.keys(Jn),(function(e){var t=String.prototype[e],n=!1;if(he.IsCallable(t)){var o=r(t,"",' " '),i=P([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else n=!0;n&&ie(String.prototype,e,Jn[e])}));var Kn=function(){if(!ae)return!1;var e="object"==typeof JSON&&"function"==typeof JSON.stringify?JSON.stringify:null;if(!e)return!1;if(void 0!==e(J()))return!0;if("[null]"!==e([J()]))return!0;var t={a:J()};return t[J()]=!0,"{}"!==e(t)}(),Xn=l((function(){return!ae||"{}"===JSON.stringify(Object(J()))&&"[{}]"===JSON.stringify([Object(J())])}));if(Kn||!Xn){var Yn=JSON.stringify;ie(JSON,"stringify",(function(e){if("symbol"!=typeof e){var t;arguments.length>1&&(t=arguments[1]);var n=[e];if(i(t))n.push(t);else{var o=he.IsCallable(t)?t:null,a=function(e,t){var n=o?r(o,this,e,t):t;if("symbol"!=typeof n)return oe.symbol(n)?zt({})(n):n};n.push(a)}return arguments.length>2&&n.push(arguments[2]),Yn.apply(this,n)}}))}return E})?i.call(t,r,t,e):i)||(e.exports=a)}).call(this,r(3),r(13))},function(e,t){var r,n,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(e){n=a}}();var u,l=[],c=!1,f=-1;function p(){c&&u&&(c=!1,u.length?l=u.concat(l):f=-1,l.length&&h())}function h(){if(!c){var e=s(p);c=!0;for(var t=l.length;t;){for(u=l,l=[];++f<t;)u&&u[f].run();f=-1,t=l.length}u=null,c=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===a||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function y(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];l.push(new d(e,t)),1!==l.length||c||s(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=y,o.addListener=y,o.once=y,o.off=y,o.removeListener=y,o.removeAllListeners=y,o.emit=y,o.prependListener=y,o.prependOnceListener=y,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,r){const n=r(15),o=r(16),i=r(2),a=r(7),s=r(6),u=r(5),{merge:l,checkSanitizeDeprecation:c,escape:f}=r(0),{getDefaults:p,changeDefaults:h,defaults:d}=r(1);function y(e,t,r){if(null==e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if(r||"function"==typeof t){r||(r=t,t=null),t=l({},y.defaults,t||{}),c(t);const i=t.highlight;let a,s,u=0;try{a=n.lex(e,t)}catch(e){return r(e)}s=a.length;const f=function(e){if(e)return t.highlight=i,r(e);let n;try{n=o.parse(a,t)}catch(t){e=t}return t.highlight=i,e?r(e):r(null,n)};if(!i||i.length<3)return f();if(delete t.highlight,!s)return f();for(;u<a.length;u++)!function(e){"code"!==e.type?--s||f():i(e.text,e.lang,(function(t,r){return t?f(t):null==r||r===e.text?--s||f():(e.text=r,e.escaped=!0,void(--s||f()))}))}(a[u])}else try{return t=l({},y.defaults,t||{}),c(t),o.parse(n.lex(e,t),t)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",(t||y.defaults).silent)return"<p>An error occurred:</p><pre>"+f(e.message+"",!0)+"</pre>";throw e}}y.options=y.setOptions=function(e){return l(y.defaults,e),h(y.defaults),y},y.getDefaults=p,y.defaults=d,y.Parser=o,y.parser=o.parse,y.Renderer=i,y.TextRenderer=a,y.Lexer=n,y.lexer=n.lex,y.InlineLexer=s,y.inlineLexer=s.output,y.Slugger=u,y.parse=y,e.exports=y},function(e,t,r){const{defaults:n}=r(1),{block:o}=r(4),{rtrim:i,splitCells:a,escape:s}=r(0);e.exports=class e{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||n,this.rules=o.normal,this.options.pedantic?this.rules=o.pedantic:this.options.gfm&&(this.rules=o.gfm)}static get rules(){return o}static lex(t,r){return new e(r).lex(t)}lex(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.token(e,!0)}token(e,t){let r,n,u,l,c,f,p,h,d,y,g,m,b,v,w,O;for(e=e.replace(/^ +$/gm,"");e;)if((u=this.rules.newline.exec(e))&&(e=e.substring(u[0].length),u[0].length>1&&this.tokens.push({type:"space"})),u=this.rules.code.exec(e)){const t=this.tokens[this.tokens.length-1];e=e.substring(u[0].length),t&&"paragraph"===t.type?t.text+="\n"+u[0].trimRight():(u=u[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?u:i(u,"\n")}))}else if(u=this.rules.fences.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"code",lang:u[2]?u[2].trim():u[2],text:u[3]||""});else if(u=this.rules.heading.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"heading",depth:u[1].length,text:u[2]});else if((u=this.rules.nptable.exec(e))&&(f={type:"table",header:a(u[1].replace(/^ *| *\| *$/g,"")),align:u[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:u[3]?u[3].replace(/\n$/,"").split("\n"):[]},f.header.length===f.align.length)){for(e=e.substring(u[0].length),g=0;g<f.align.length;g++)/^ *-+: *$/.test(f.align[g])?f.align[g]="right":/^ *:-+: *$/.test(f.align[g])?f.align[g]="center":/^ *:-+ *$/.test(f.align[g])?f.align[g]="left":f.align[g]=null;for(g=0;g<f.cells.length;g++)f.cells[g]=a(f.cells[g],f.header.length);this.tokens.push(f)}else if(u=this.rules.hr.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"hr"});else if(u=this.rules.blockquote.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"blockquote_start"}),u=u[0].replace(/^ *> ?/gm,""),this.token(u,t),this.tokens.push({type:"blockquote_end"});else if(u=this.rules.list.exec(e)){for(e=e.substring(u[0].length),l=u[2],v=l.length>1,p={type:"list_start",ordered:v,start:v?+l:"",loose:!1},this.tokens.push(p),u=u[0].match(this.rules.item),h=[],r=!1,b=u.length,g=0;g<b;g++)f=u[g],y=f.length,f=f.replace(/^ *([*+-]|\d+\.) */,""),~f.indexOf("\n ")&&(y-=f.length,f=this.options.pedantic?f.replace(/^ {1,4}/gm,""):f.replace(new RegExp("^ {1,"+y+"}","gm"),"")),g!==b-1&&(c=o.bullet.exec(u[g+1])[0],(l.length>1?1===c.length:c.length>1||this.options.smartLists&&c!==l)&&(e=u.slice(g+1).join("\n")+e,g=b-1)),n=r||/\n\n(?!\s*$)/.test(f),g!==b-1&&(r="\n"===f.charAt(f.length-1),n||(n=r)),n&&(p.loose=!0),w=/^\[[ xX]\] /.test(f),O=void 0,w&&(O=" "!==f[1],f=f.replace(/^\[[ xX]\] +/,"")),d={type:"list_item_start",task:w,checked:O,loose:n},h.push(d),this.tokens.push(d),this.token(f,!1),this.tokens.push({type:"list_item_end"});if(p.loose)for(b=h.length,g=0;g<b;g++)h[g].loose=!0;this.tokens.push({type:"list_end"})}else if(u=this.rules.html.exec(e))e=e.substring(u[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===u[1]||"script"===u[1]||"style"===u[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(u[0]):s(u[0]):u[0]});else if(t&&(u=this.rules.def.exec(e)))e=e.substring(u[0].length),u[3]&&(u[3]=u[3].substring(1,u[3].length-1)),m=u[1].toLowerCase().replace(/\s+/g," "),this.tokens.links[m]||(this.tokens.links[m]={href:u[2],title:u[3]});else if((u=this.rules.table.exec(e))&&(f={type:"table",header:a(u[1].replace(/^ *| *\| *$/g,"")),align:u[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:u[3]?u[3].replace(/\n$/,"").split("\n"):[]},f.header.length===f.align.length)){for(e=e.substring(u[0].length),g=0;g<f.align.length;g++)/^ *-+: *$/.test(f.align[g])?f.align[g]="right":/^ *:-+: *$/.test(f.align[g])?f.align[g]="center":/^ *:-+ *$/.test(f.align[g])?f.align[g]="left":f.align[g]=null;for(g=0;g<f.cells.length;g++)f.cells[g]=a(f.cells[g].replace(/^ *\| *| *\| *$/g,""),f.header.length);this.tokens.push(f)}else if(u=this.rules.lheading.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"heading",depth:"="===u[2].charAt(0)?1:2,text:u[1]});else if(t&&(u=this.rules.paragraph.exec(e)))e=e.substring(u[0].length),this.tokens.push({type:"paragraph",text:"\n"===u[1].charAt(u[1].length-1)?u[1].slice(0,-1):u[1]});else if(u=this.rules.text.exec(e))e=e.substring(u[0].length),this.tokens.push({type:"text",text:u[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens}}},function(e,t,r){const n=r(2),o=r(5),i=r(6),a=r(7),{defaults:s}=r(1),{merge:u,unescape:l}=r(0);e.exports=class e{constructor(e){this.tokens=[],this.token=null,this.options=e||s,this.options.renderer=this.options.renderer||new n,this.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new o}static parse(t,r){return new e(r).parse(t)}parse(e){this.inline=new i(e.links,this.options),this.inlineText=new i(e.links,u({},this.options,{renderer:new a})),this.tokens=e.reverse();let t="";for(;this.next();)t+=this.tok();return t}next(){return this.token=this.tokens.pop(),this.token}peek(){return this.tokens[this.tokens.length-1]||0}parseText(){let e=this.token.text;for(;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)}tok(){let e="";switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,l(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":{let t,r,n,o,i="";for(n="",t=0;t<this.token.header.length;t++)n+=this.renderer.tablecell(this.inline.output(this.token.header[t]),{header:!0,align:this.token.align[t]});for(i+=this.renderer.tablerow(n),t=0;t<this.token.cells.length;t++){for(r=this.token.cells[t],n="",o=0;o<r.length;o++)n+=this.renderer.tablecell(this.inline.output(r[o]),{header:!1,align:this.token.align[o]});e+=this.renderer.tablerow(n)}return this.renderer.table(i,e)}case"blockquote_start":for(e="";"blockquote_end"!==this.next().type;)e+=this.tok();return this.renderer.blockquote(e);case"list_start":{e="";const t=this.token.ordered,r=this.token.start;for(;"list_end"!==this.next().type;)e+=this.tok();return this.renderer.list(e,t,r)}case"list_item_start":{e="";const t=this.token.loose,r=this.token.checked,n=this.token.task;if(this.token.task)if(t)if("text"===this.peek().type){const e=this.peek();e.text=this.renderer.checkbox(r)+" "+e.text}else this.tokens.push({type:"text",text:this.renderer.checkbox(r)});else e+=this.renderer.checkbox(r);for(;"list_item_end"!==this.next().type;)e+=t||"text"!==this.token.type?this.tok():this.parseText();return this.renderer.listitem(e,n,r)}case"html":return this.renderer.html(this.token.text);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText());default:{const e='Token with "'+this.token.type+'" type was not found.';if(!this.options.silent)throw new Error(e);console.log(e)}}}}},function(e,t,r){(function(r){var n,o;window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,r=(this.document||this.ownerDocument).querySelectorAll(e),n=this;do{for(t=r.length;0<=--t&&r.item(t)!==n;);}while(t<0&&(n=n.parentElement));return n}),function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var r=document.createEvent("CustomEvent");return r.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r}"function"!=typeof window.CustomEvent&&(e.prototype=window.Event.prototype,window.CustomEvent=e)}(),function(){for(var e=0,t=["ms","moz","webkit","o"],r=0;r<t.length&&!window.requestAnimationFrame;++r)window.requestAnimationFrame=window[t[r]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[r]+"CancelAnimationFrame"]||window[t[r]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t,r){var n=(new Date).getTime(),o=Math.max(0,16-(n-e)),i=window.setTimeout((function(){t(n+o)}),o);return e=n+o,i}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}(),o=void 0!==r?r:"undefined"!=typeof window?window:this,void 0===(n=function(){return function(e){"use strict";var t={ignore:"[data-scroll-ignore]",header:null,topOnEmptyHash:!0,speed:500,speedAsDuration:!1,durationMax:null,durationMin:null,clip:!0,offset:0,easing:"easeInOutCubic",customEasing:null,updateURL:!0,popstate:!0,emitEvents:!0},r=function(){var e={};return Array.prototype.forEach.call(arguments,(function(t){for(var r in t){if(!t.hasOwnProperty(r))return;e[r]=t[r]}})),e},n=function(e){"#"===e.charAt(0)&&(e=e.substr(1));for(var t,r=String(e),n=r.length,o=-1,i="",a=r.charCodeAt(0);++o<n;){if(0===(t=r.charCodeAt(o)))throw new InvalidCharacterError("Invalid character: the input contains U+0000.");i+=1<=t&&t<=31||127==t||0===o&&48<=t&&t<=57||1===o&&48<=t&&t<=57&&45===a?"\\"+t.toString(16)+" ":128<=t||45===t||95===t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122?r.charAt(o):"\\"+r.charAt(o)}return"#"+i},o=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},i=function(t,r,n,o){if(r.emitEvents&&"function"==typeof e.CustomEvent){var i=new CustomEvent(t,{bubbles:!0,detail:{anchor:n,toggle:o}});document.dispatchEvent(i)}};return function(a,s){var u,l,c,f,p={cancelScroll:function(e){cancelAnimationFrame(f),f=null,e||i("scrollCancel",u)},animateScroll:function(n,a,s){p.cancelScroll();var l=r(u||t,s||{}),h="[object Number]"===Object.prototype.toString.call(n),d=h||!n.tagName?null:n;if(h||d){var y=e.pageYOffset;l.header&&!c&&(c=document.querySelector(l.header));var g,m,b,v,w,O,S,x,T=function(t){return t?(r=t,parseInt(e.getComputedStyle(r).height,10)+t.offsetTop):0;var r}(c),j=h?n:function(t,r,n,i){var a=0;if(t.offsetParent)for(;a+=t.offsetTop,t=t.offsetParent;);return a=Math.max(a-r-n,0),i&&(a=Math.min(a,o()-e.innerHeight)),a}(d,T,parseInt("function"==typeof l.offset?l.offset(n,a):l.offset,10),l.clip),E=j-y,A=o(),_=0,k=(g=E,b=(m=l).speedAsDuration?m.speed:Math.abs(g/1e3*m.speed),m.durationMax&&b>m.durationMax?m.durationMax:m.durationMin&&b<m.durationMin?m.durationMin:parseInt(b,10)),P=function(t){var r,o,s;v||(v=t),_+=t-v,O=y+E*(o=w=1<(w=0===k?0:_/k)?1:w,"easeInQuad"===(r=l).easing&&(s=o*o),"easeOutQuad"===r.easing&&(s=o*(2-o)),"easeInOutQuad"===r.easing&&(s=o<.5?2*o*o:(4-2*o)*o-1),"easeInCubic"===r.easing&&(s=o*o*o),"easeOutCubic"===r.easing&&(s=--o*o*o+1),"easeInOutCubic"===r.easing&&(s=o<.5?4*o*o*o:(o-1)*(2*o-2)*(2*o-2)+1),"easeInQuart"===r.easing&&(s=o*o*o*o),"easeOutQuart"===r.easing&&(s=1- --o*o*o*o),"easeInOutQuart"===r.easing&&(s=o<.5?8*o*o*o*o:1-8*--o*o*o*o),"easeInQuint"===r.easing&&(s=o*o*o*o*o),"easeOutQuint"===r.easing&&(s=1+--o*o*o*o*o),"easeInOutQuint"===r.easing&&(s=o<.5?16*o*o*o*o*o:1+16*--o*o*o*o*o),r.customEasing&&(s=r.customEasing(o)),s||o),e.scrollTo(0,Math.floor(O)),function(t,r){var o,s,u,c=e.pageYOffset;if(t==r||c==r||(y<r&&e.innerHeight+c)>=A)return p.cancelScroll(!0),s=r,u=h,0===(o=n)&&document.body.focus(),u||(o.focus(),document.activeElement!==o&&(o.setAttribute("tabindex","-1"),o.focus(),o.style.outline="none"),e.scrollTo(0,s)),i("scrollStop",l,n,a),!(f=v=null)}(O,j)||(f=e.requestAnimationFrame(P),v=t)};0===e.pageYOffset&&e.scrollTo(0,0),S=n,x=l,h||history.pushState&&x.updateURL&&history.pushState({smoothScroll:JSON.stringify(x),anchor:S.id},document.title,S===document.documentElement?"#top":"#"+S.id),"matchMedia"in e&&e.matchMedia("(prefers-reduced-motion)").matches?e.scrollTo(0,Math.floor(j)):(i("scrollStart",l,n,a),p.cancelScroll(!0),e.requestAnimationFrame(P))}}},h=function(t){if(!t.defaultPrevented&&!(0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey)&&"closest"in t.target&&(l=t.target.closest(a))&&"a"===l.tagName.toLowerCase()&&!t.target.closest(u.ignore)&&l.hostname===e.location.hostname&&l.pathname===e.location.pathname&&/#/.test(l.href)){var r,o;try{r=n(decodeURIComponent(l.hash))}catch(t){r=n(l.hash)}if(console.log(r),"#"===r){if(!u.topOnEmptyHash)return;o=document.documentElement}else o=document.querySelector(r);(o=o||"#top"!==r?o:document.documentElement)&&(t.preventDefault(),function(t){if(history.replaceState&&t.updateURL&&!history.state){var r=e.location.hash;r=r||"",history.replaceState({smoothScroll:JSON.stringify(t),anchor:r||e.pageYOffset},document.title,r||e.location.href)}}(u),p.animateScroll(o,l))}},d=function(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(u)){var t=history.state.anchor;"string"==typeof t&&t&&!(t=document.querySelector(n(history.state.anchor)))||p.animateScroll(t,null,{updateURL:!1})}};return p.destroy=function(){u&&(document.removeEventListener("click",h,!1),e.removeEventListener("popstate",d,!1),p.cancelScroll(),f=c=l=u=null)},function(){if(!("querySelector"in document&&"addEventListener"in e&&"requestAnimationFrame"in e&&"closest"in e.Element.prototype))throw"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.";p.destroy(),u=r(t,s||{}),c=u.header?document.querySelector(u.header):null,document.addEventListener("click",h,!1),u.updateURL&&u.popstate&&e.addEventListener("popstate",d,!1)}(),p}}(o)}.apply(t,[]))||(e.exports=n)}).call(this,r(3))},function(e,t,r){},function(e,t,r){"use strict";r.r(t),r.d(t,"Headers",(function(){return h})),r.d(t,"Request",(function(){return w})),r.d(t,"Response",(function(){return S})),r.d(t,"DOMException",(function(){return T})),r.d(t,"fetch",(function(){return j}));var n="URLSearchParams"in self,o="Symbol"in self&&"iterator"in Symbol,i="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(e){return!1}}(),a="FormData"in self,s="ArrayBuffer"in self;if(s)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],l=ArrayBuffer.isView||function(e){return e&&u.indexOf(Object.prototype.toString.call(e))>-1};function c(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function f(e){return"string"!=typeof e&&(e=String(e)),e}function p(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return o&&(t[Symbol.iterator]=function(){return t}),t}function h(e){this.map={},e instanceof h?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function d(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function y(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function g(e){var t=new FileReader,r=y(t);return t.readAsArrayBuffer(e),r}function m(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function b(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:i&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:a&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:n&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():s&&i&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=m(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(e)||l(e))?this._bodyArrayBuffer=m(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var e=d(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?d(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(g)}),this.text=function(){var e,t,r,n=d(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,r=y(t),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n<t.length;n++)r[n]=String.fromCharCode(t[n]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},a&&(this.formData=function(){return this.text().then(O)}),this.json=function(){return this.text().then(JSON.parse)},this}h.prototype.append=function(e,t){e=c(e),t=f(t);var r=this.map[e];this.map[e]=r?r+", "+t:t},h.prototype.delete=function(e){delete this.map[c(e)]},h.prototype.get=function(e){return e=c(e),this.has(e)?this.map[e]:null},h.prototype.has=function(e){return this.map.hasOwnProperty(c(e))},h.prototype.set=function(e,t){this.map[c(e)]=f(t)},h.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},h.prototype.keys=function(){var e=[];return this.forEach((function(t,r){e.push(r)})),p(e)},h.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),p(e)},h.prototype.entries=function(){var e=[];return this.forEach((function(t,r){e.push([r,t])})),p(e)},o&&(h.prototype[Symbol.iterator]=h.prototype.entries);var v=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function w(e,t){var r,n,o=(t=t||{}).body;if(e instanceof w){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new h(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,o||null==e._bodyInit||(o=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new h(t.headers)),this.method=(r=t.method||this.method||"GET",n=r.toUpperCase(),v.indexOf(n)>-1?n:r),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function O(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(o))}})),t}function S(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new h(t.headers),this.url=t.url||"",this._initBody(e)}w.prototype.clone=function(){return new w(this,{body:this._bodyInit})},b.call(w.prototype),b.call(S.prototype),S.prototype.clone=function(){return new S(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},S.error=function(){var e=new S(null,{status:0,statusText:""});return e.type="error",e};var x=[301,302,303,307,308];S.redirect=function(e,t){if(-1===x.indexOf(t))throw new RangeError("Invalid status code");return new S(null,{status:t,headers:{location:e}})};var T=self.DOMException;try{new T}catch(e){(T=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack}).prototype=Object.create(Error.prototype),T.prototype.constructor=T}function j(e,t){return new Promise((function(r,n){var o=new w(e,t);if(o.signal&&o.signal.aborted)return n(new T("Aborted","AbortError"));var a=new XMLHttpRequest;function s(){a.abort()}a.onload=function(){var e,t,n={status:a.status,statusText:a.statusText,headers:(e=a.getAllResponseHeaders()||"",t=new h,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();t.append(n,o)}})),t)};n.url="responseURL"in a?a.responseURL:n.headers.get("X-Request-URL");var o="response"in a?a.response:a.responseText;r(new S(o,n))},a.onerror=function(){n(new TypeError("Network request failed"))},a.ontimeout=function(){n(new TypeError("Network request failed"))},a.onabort=function(){n(new T("Aborted","AbortError"))},a.open(o.method,o.url,!0),"include"===o.credentials?a.withCredentials=!0:"omit"===o.credentials&&(a.withCredentials=!1),"responseType"in a&&i&&(a.responseType="blob"),o.headers.forEach((function(e,t){a.setRequestHeader(t,e)})),o.signal&&(o.signal.addEventListener("abort",s),a.onreadystatechange=function(){4===a.readyState&&o.signal.removeEventListener("abort",s)}),a.send(void 0===o._bodyInit?null:o._bodyInit)}))}j.polyfill=!0,self.fetch||(self.fetch=j,self.Headers=h,self.Request=w,self.Response=S)},function(e,t,r){},function(e,t,r){"use strict";r.r(t);var n=Object.defineProperty;function o(e,t,r){var o=r.configurable,i=r.enumerable,a=r.initializer,s=r.value;return{configurable:o,enumerable:i,get:function(){if(this!==e){var r=a?a.call(this):s;return n(this,t,{configurable:o,enumerable:i,writable:!0,value:r}),r}},set:E(t)}}function i(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(o,t)}var a,s,u,l,c,f,p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function h(e,t,r,n){r&&Object.defineProperty(e,t,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}function d(e,t,r,n,o){var i={};return Object.keys(n).forEach((function(e){i[e]=n[e]})),i.enumerable=!!i.enumerable,i.configurable=!!i.configurable,("value"in i||i.initializer)&&(i.writable=!0),i=r.slice().reverse().reduce((function(r,n){return n(e,t,r)||r}),i),o&&void 0!==i.initializer&&(i.value=i.initializer?i.initializer.call(o):void 0,i.initializer=void 0),void 0===i.initializer&&(Object.defineProperty(e,t,i),i=null),i}function y(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var g=Object.defineProperty,m=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyNames,v=Object.getOwnPropertySymbols;function w(e,t){return function(e){if(!e||!e.hasOwnProperty)return!1;for(var t=["value","initializer","get","set"],r=0,n=t.length;r<n;r++)if(e.hasOwnProperty(t[r]))return!0;return!1}(t[t.length-1])?e.apply(void 0,y(t).concat([[]])):function(){return e.apply(void 0,y(Array.prototype.slice.call(arguments)).concat([t]))}}var O=(s=d((a=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),h(this,"debounceTimeoutIds",s,this),h(this,"throttleTimeoutIds",u,this),h(this,"throttlePreviousTimestamps",l,this),h(this,"throttleTrailingArgs",c,this),h(this,"profileLastRan",f,this)}).prototype,"debounceTimeoutIds",[i],{enumerable:!0,initializer:function(){return{}}}),u=d(a.prototype,"throttleTimeoutIds",[i],{enumerable:!0,initializer:function(){return{}}}),l=d(a.prototype,"throttlePreviousTimestamps",[i],{enumerable:!0,initializer:function(){return{}}}),c=d(a.prototype,"throttleTrailingArgs",[i],{enumerable:!0,initializer:function(){return null}}),f=d(a.prototype,"profileLastRan",[i],{enumerable:!0,initializer:function(){return null}}),a),S="function"==typeof Symbol?Symbol("__core_decorators__"):"__core_decorators__";function x(e){return!1===e.hasOwnProperty(S)&&g(e,S,{value:new O}),e[S]}var T=v?function(e){return b(e).concat(v(e))}:b;function j(e){var t={};return T(e).forEach((function(r){return t[r]=m(e,r)})),t}function E(e){return function(t){return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t}),t}}function A(e,t){return e.bind?e.bind(t):function(){return e.apply(t,arguments)}}var _="object"===("undefined"==typeof console?"undefined":p(console))&&console&&"function"==typeof console.warn?A(console.warn,console):function(){},k={};function P(e){!0!==k[e]&&(k[e]=!0,_("DEPRECATION: "+e))}var I="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();var M=/^function ([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?(\([^\)]*\))[\s\S]+$/,R=function(){function e(t,r,n,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.parentKlass=t,this.childKlass=r,this.parentDescriptor=n,this.childDescriptor=o}return C(e,[{key:"_getTopic",value:function(e){return void 0===e?null:"value"in e?e.value:"get"in e?e.get:"set"in e?e.set:void 0}},{key:"_extractTopicSignature",value:function(e){switch(void 0===e?"undefined":I(e)){case"function":return this._extractFunctionSignature(e);default:return this.key}}},{key:"_extractFunctionSignature",value:function(e){var t=this;return e.toString().replace(M,(function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.key,n=arguments[2];return r+n}))}},{key:"key",get:function(){return this.childDescriptor.key}},{key:"parentNotation",get:function(){return this.parentKlass.constructor.name+"#"+this.parentPropertySignature}},{key:"childNotation",get:function(){return this.childKlass.constructor.name+"#"+this.childPropertySignature}},{key:"parentTopic",get:function(){return this._getTopic(this.parentDescriptor)}},{key:"childTopic",get:function(){return this._getTopic(this.childDescriptor)}},{key:"parentPropertySignature",get:function(){return this._extractTopicSignature(this.parentTopic)}},{key:"childPropertySignature",get:function(){return this._extractTopicSignature(this.childTopic)}}]),C(e,[{key:"assert",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";!0!==e&&this.error("{child} does not properly override {parent}"+t)}},{key:"error",value:function(e){var t=this;throw e=e.replace("{parent}",(function(e){return t.parentNotation})).replace("{child}",(function(e){return t.childNotation})),new SyntaxError(e)}}]),e}();function N(e){return e.hasOwnProperty("value")?"data":e.hasOwnProperty("get")||e.hasOwnProperty("set")?"accessor":"data"}function L(e,t,r){r.assert(e.length===t.length)}function D(e,t,r){var n=N(e),o=N(t);switch(n!==o&&r.error('descriptor types do not match. {parent} is "'+n+'", {child} is "'+o+'"'),o){case"data":!function(e,t,r){var n=I(e.value),o=I(t.value);switch("undefined"===n&&"undefined"===o&&r.error("descriptor values are both undefined. (class properties are are not currently supported)'"),n!==o&&("function"===o&&void 0===n||void 0!==n)&&r.error('value types do not match. {parent} is "'+n+'", {child} is "'+o+'"'),o){case"function":L(e.value,t.value,r);break;default:r.error('Unexpected error. Please file a bug with: {parent} is "'+n+'", {child} is "'+o+'"')}}(e,t,r);break;case"accessor":!function(e,t,r){var n="function"==typeof e.get,o="function"==typeof t.get,i="function"==typeof e.set,a="function"==typeof t.set;(n||o)&&(!n&&i&&r.error("{parent} is setter but {child} is getter"),!o&&a&&r.error("{parent} is getter but {child} is setter"),L(e.get,t.get,r)),(i||a)&&(!i&&n&&r.error("{parent} is getter but {child} is setter"),!a&&o&&r.error("{parent} is setter but {child} is getter"),L(e.set,t.set,r))}(e,t,r)}}var z=[function(e){return e.toLowerCase()},function(e){return e.toUpperCase()},function(e){return e+"s"},function(e){return e.slice(0,-1)},function(e){return e.slice(1,e.length)}];function F(e,t,r){r.key=t;var n=Object.getPrototypeOf(e),o=Object.getOwnPropertyDescriptor(n,t),i=new R(n,e,o,r);if(void 0===o){var a=function(e,t){for(var r=0,n=z.length;r<n;r++){var o=(0,z[r])(t);if(o in e)return o}return null}(n,t),s=a?'\n\n Did you mean "'+a+'"?':"";i.error("No descriptor matching {child} was found on the prototype chain."+s)}return D(o,r,i),r}function q(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(F,t)}var $=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},H=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function U(e,t,r,n){var o=H(n,2),i=o[0],a=void 0===i?"This function will be removed in future versions.":i,s=o[1],u=void 0===s?{}:s;if("function"!=typeof r.value)throw new SyntaxError("Only functions can be marked as deprecated");var l=e.constructor.name+"#"+t;return u.url&&(a+="\n\n See "+u.url+" for more details.\n\n"),$({},r,{value:function(){return _("DEPRECATION "+l+": "+a),r.value.apply(this,arguments)}})}function B(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(U,t)}var G=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},W="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function Z(){}function V(e,t,r){if("object"===("undefined"==typeof console?"undefined":W(console))){var n=console.warn;console.warn=Z;var o=t.apply(e,r);return console.warn=n,o}return t.apply(e,r)}function J(e,t,r){return G({},r,{value:function(){return V(this,r.value,arguments)}})}function K(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(J,t)}var X=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};function Y(e,t){return t===Object(t)?t:e[t]||(e[t]={})}function Q(e,t,r,n,o){var i=t.apply(e,r);return n[o]=i,i}function ee(e,t,r){var n=function(e){var t=void 0,r=void 0;return e.value?(t=e.value,r="value"):e.get?(t=e.get,r="get"):e.set&&(t=e.set,r="set"),{fn:t,wrapKey:r}}(r),o=n.fn,i=n.wrapKey,a=new WeakMap,s=Object.create(null),u=Object.create(null),l=0;return X({},r,function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}({},i,(function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n="0",i=0,c=t.length;i<c;i++){var f=t[i],p=Y(u,f),h=a.get(p);void 0===h&&(h=++l,a.set(p,h)),n+=h}return s[n]||Q(this,o,arguments,s,n)})))}function te(){P("@memoize is deprecated and will be removed shortly. Use @memoize from lodash-decorators.\n\n https://www.npmjs.com/package/lodash-decorators");for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(ee,t)}function re(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var ne=Object.defineProperty,oe=Object.getPrototypeOf,ie=void 0;function ae(e){for(var t=j(e.prototype),r=T(t),n=0,o=r.length;n<o;n++){var i=r[n],a=t[i];"function"==typeof a.value&&"constructor"!==i&&ne(e.prototype,i,se(e.prototype,i,a))}}function se(e,t,r){var n=r.value,o=r.configurable,i=r.enumerable;if("function"!=typeof n)throw new SyntaxError("@autobind can only be used on functions, not: "+n);var a=e.constructor;return{configurable:o,enumerable:i,get:function(){if(this===e)return n;if(this.constructor!==a&&oe(this).constructor===a)return n;if(this.constructor!==a&&t in this.constructor.prototype)return function(e,t){if("undefined"==typeof WeakMap)throw new Error("Using @autobind on "+t.name+"() requires WeakMap support due to its use of super."+t.name+"()\n See https://github.com/jayphelps/core-decorators.js/issues/20");ie||(ie=new WeakMap),!1===ie.has(e)&&ie.set(e,new WeakMap);var r=ie.get(e);return!1===r.has(t)&&r.set(t,A(t,e)),r.get(t)}(this,n);var r=A(n,this);return ne(this,t,{configurable:!0,writable:!0,enumerable:!1,value:r}),r},set:E(t)}}function ue(e){return 1===e.length?ae.apply(void 0,re(e)):se.apply(void 0,re(e))}function le(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return 0===t.length?function(){return ue(arguments)}:ue(t)}function ce(e,t,r){return r.writable=!1,r}function fe(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(ce,t)}function pe(e,t,r){return r.enumerable=!0,r}function he(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(pe,t)}function de(e,t,r){return r.enumerable=!1,r}function ye(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(de,t)}function ge(e,t,r){return r.configurable=!1,r}function me(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(ge,t)}var be=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ve=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function we(e,t,r,n){var o=ve(n,2),i=o[0],a=void 0===i?300:i,s=o[1],u=void 0!==s&&s,l=r.value;if("function"!=typeof l)throw new SyntaxError("Only functions can be debounced");return be({},r,{value:function(){var e=this,r=x(this),n=r.debounceTimeoutIds,o=n[t],i=u&&!o,s=arguments;clearTimeout(o),n[t]=setTimeout((function(){delete n[t],u||l.apply(e,s)}),a),i&&l.apply(this,s)}})}function Oe(){P("@debounce is deprecated and will be removed shortly. Use @debounce from lodash-decorators.\n\n https://www.npmjs.com/package/lodash-decorators");for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(we,t)}var Se=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},xe=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function Te(e,t,r,n){var o=xe(n,2),i=o[0],a=void 0===i?300:i,s=o[1],u=void 0===s?{}:s,l=r.value;if("function"!=typeof l)throw new SyntaxError("Only functions can be throttled");return!1!==u.leading&&(u.leading=!0),!1!==u.trailing&&(u.trailing=!0),Se({},r,{value:function(){var e=this,r=x(this),n=r.throttleTimeoutIds,o=r.throttlePreviousTimestamps,i=n[t],s=o[t]||0,c=Date.now();u.trailing&&(r.throttleTrailingArgs=arguments),s||!1!==u.leading||(s=c);var f=a-(c-s);f<=0?(clearTimeout(i),delete n[t],o[t]=c,l.apply(this,arguments)):!i&&u.trailing&&(n[t]=setTimeout((function(){o[t]=!1===u.leading?0:Date.now(),delete n[t],l.apply(e,r.throttleTrailingArgs),r.throttleTrailingArgs=null}),f))}})}function je(){P("@throttle is deprecated and will be removed shortly. Use @throttle from lodash-decorators.\n\n https://www.npmjs.com/package/lodash-decorators");for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(Te,t)}var Ee=Object.defineProperty;function Ae(e,t,r,n){var o,i=(o=n,Array.isArray(o)?o:Array.from(o)),a=i[0],s=i.slice(1),u=r.configurable,l=r.enumerable,c=r.writable,f=r.get,p=r.set,h=r.value,d=!!f;return{configurable:u,enumerable:l,get:function(){var e=d?f.call(this):h,r=a.call.apply(a,[this,e].concat(function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}(s)));if(d)return r;var n={configurable:u,enumerable:l};return n.value=r,n.writable=c,Ee(this,t,n),r},set:d?p:E()}}function _e(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(Ae,t)}var ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pe=Object.defineProperty,Ie=Object.getPrototypeOf;function Ce(e,t){if(r=e,"[object Symbol]"===Object.prototype.toString.call(r)&&"object"===(void 0===r?"undefined":ke(r))){do{if(t===Object.prototype)return void 0!==t[e];if(t.hasOwnProperty(e))return!0}while(t=Ie(t));return!1}return e in t;var r}function Me(e,t){if(!t.length)throw new SyntaxError("@mixin() class "+e.name+" requires at least one mixin as an argument");for(var r=0,n=t.length;r<n;r++)for(var o=j(t[r]),i=T(o),a=0,s=i.length;a<s;a++){var u=i[a];Ce(u,e.prototype)||Pe(e.prototype,u,o[u])}}function Re(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return P("@mixin is deprecated and will be removed shortly. Use @mixin from lodash-decorators.\n\n https://www.npmjs.com/package/lodash-decorators"),"function"==typeof t[0]?Me(t[0],[]):function(e){return Me(e,t)}}var Ne=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Le=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},De={},ze={time:console.time?console.time.bind(console):function(e){De[e]=new Date},timeEnd:console.timeEnd?console.timeEnd.bind(console):function(e){var t=new Date-De[e];delete De[e],console.log(e+": "+t+"ms")}},Fe=0;function qe(e,t,r,n){var o=Le(n,2),i=o[0],a=void 0===i?null:i,s=o[1],u=void 0===s?ze:s,l=r.value;if(null===a&&(a=e.constructor.name+"."+t),"function"!=typeof l)throw new SyntaxError("@time can only be used on functions, not: "+l);return Ne({},r,{value:function(){var e=a+"-"+Fe;Fe++,u.time(e);try{return l.apply(this,arguments)}finally{u.timeEnd(e)}}})}function $e(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(qe,t)}var He=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ue=Object.getPrototypeOf,Be=Object.getOwnPropertyDescriptor;function Ge(e,t,r){var n=Ue(e),o=Be(n,t);return He({},o,{value:r.value,initializer:r.initializer,get:r.get||o.get,set:r.set||o.set})}function We(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(Ge,t)}var Ze=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ve=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},Je=(console,{profile:console.profile?A(console.profile,console):function(){},profileEnd:console.profileEnd?A(console.profileEnd,console):function(){},warn:_});function Ke(e,t,r,n){var o=Ve(n,3),i=o[0],a=void 0===i?null:i,s=o[1],u=void 0!==s&&s,l=o[2],c=void 0===l?Je:l;if(!Xe.__enabled)return Xe.__warned||(c.warn("console.profile is not supported. All @profile decorators are disabled."),Xe.__warned=!0),r;var f=r.value;if(null===a&&(a=e.constructor.name+"."+t),"function"!=typeof f)throw new SyntaxError("@profile can only be used on functions, not: "+f);return Ze({},r,{value:function(){var e=Date.now(),t=x(this);(!0===u&&!t.profileLastRan||!1===u||"number"==typeof u&&e-t.profileLastRan>u||"function"==typeof u&&u.apply(this,arguments))&&(c.profile(a),t.profileLastRan=e);try{return f.apply(this,arguments)}finally{c.profileEnd(a)}}})}function Xe(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return w(Ke,t)}Xe.__enabled=!!console.profile,Xe.__warned=!1;var Ye=Object.defineProperty,Qe=Object.getOwnPropertyDescriptor;function et(e,t){var r=e.prototype;for(var n in t)for(var o=t[n],i=0,a=o.length;i<a;i++){var s=o[i];Ye(r,n,s(r,n,Qe(r,n)))}return e}r.d(t,"override",(function(){return q})),r.d(t,"deprecate",(function(){return B})),r.d(t,"deprecated",(function(){return B})),r.d(t,"suppressWarnings",(function(){return K})),r.d(t,"memoize",(function(){return te})),r.d(t,"autobind",(function(){return le})),r.d(t,"readonly",(function(){return fe})),r.d(t,"enumerable",(function(){return he})),r.d(t,"nonenumerable",(function(){return ye})),r.d(t,"nonconfigurable",(function(){return me})),r.d(t,"debounce",(function(){return Oe})),r.d(t,"throttle",(function(){return je})),r.d(t,"decorate",(function(){return _e})),r.d(t,"mixin",(function(){return Re})),r.d(t,"mixins",(function(){return Re})),r.d(t,"lazyInitialize",(function(){return i})),r.d(t,"time",(function(){return $e})),r.d(t,"extendDescriptor",(function(){return We})),r.d(t,"profile",(function(){return Xe})),r.d(t,"applyDecorators",(function(){return et}))}]); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/docs/index.js.LICENSE b/dist/docs/index.js.LICENSE index 08451b1..6d25429 100644 --- a/dist/docs/index.js.LICENSE +++ b/dist/docs/index.js.LICENSE @@ -8,4 +8,4 @@ * https://github.com/paulmillr/es6-shim/ */ -/*! smooth-scroll v16.1.0 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */ +/*! smooth-scroll v16.1.1 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */ diff --git a/dist/docs/index.js.map b/dist/docs/index.js.map index dda82de..df500a7 100644 --- a/dist/docs/index.js.map +++ b/dist/docs/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/marked/src/helpers.js","webpack:///./node_modules/marked/src/defaults.js","webpack:///./node_modules/marked/src/Renderer.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/marked/src/rules.js","webpack:///./node_modules/marked/src/Slugger.js","webpack:///./node_modules/marked/src/InlineLexer.js","webpack:///./node_modules/marked/src/TextRenderer.js","webpack:///./src/docs/index.ts","webpack:///./node_modules/dompurify/dist/purify.js","webpack:///./node_modules/es6-shim/es6-shim.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/marked/src/marked.js","webpack:///./node_modules/marked/src/Lexer.js","webpack:///./node_modules/marked/src/Parser.js","webpack:///./node_modules/smooth-scroll/dist/smooth-scroll.polyfills.min.js","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./node_modules/core-decorators/es/lazy-initialize.js","webpack:///./node_modules/core-decorators/es/private/utils.js","webpack:///./node_modules/core-decorators/es/override.js","webpack:///./node_modules/core-decorators/es/deprecate.js","webpack:///./node_modules/core-decorators/es/suppress-warnings.js","webpack:///./node_modules/core-decorators/es/memoize.js","webpack:///./node_modules/core-decorators/es/autobind.js","webpack:///./node_modules/core-decorators/es/readonly.js","webpack:///./node_modules/core-decorators/es/enumerable.js","webpack:///./node_modules/core-decorators/es/nonenumerable.js","webpack:///./node_modules/core-decorators/es/nonconfigurable.js","webpack:///./node_modules/core-decorators/es/debounce.js","webpack:///./node_modules/core-decorators/es/throttle.js","webpack:///./node_modules/core-decorators/es/decorate.js","webpack:///./node_modules/core-decorators/es/mixin.js","webpack:///./node_modules/core-decorators/es/time.js","webpack:///./node_modules/core-decorators/es/extendDescriptor.js","webpack:///./node_modules/core-decorators/es/profile.js","webpack:///./node_modules/core-decorators/es/applyDecorators.js","webpack:///./node_modules/core-decorators/es/core-decorators.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","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","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","unescapeTest","unescape","html","replace","_","toLowerCase","charAt","String","fromCharCode","parseInt","substring","caret","nonWordAndColonTest","originIndependentUrl","baseUrls","justDomain","protocol","domain","resolveUrl","base","href","test","rtrim","relativeBase","indexOf","str","invert","length","suffLen","currChar","substr","escape","encode","edit","regex","opt","source","obj","val","getRegex","RegExp","cleanUrl","sanitize","prot","decodeURIComponent","e","encodeURI","noopTest","exec","merge","target","arguments","splitCells","tableRow","count","cells","match","offset","escaped","curr","split","splice","push","trim","findClosingBracket","b","level","checkSanitizeDeprecation","silent","console","warn","getDefaults","baseUrl","breaks","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitizer","smartLists","smartypants","xhtml","defaults","changeDefaults","newDefaults","options","this","code","infostring","lang","out","quote","text","raw","slugger","slug","body","ordered","start","type","checked","header","content","flags","align","title","g","Function","window","block","newline","fences","hr","heading","blockquote","list","def","nptable","table","lheading","_paragraph","_label","_title","bullet","item","_tag","_comment","paragraph","normal","inline","autolink","url","tag","link","reflink","nolink","strong","em","br","del","_punctuation","_escapes","_scheme","_email","_attribute","_href","_extended_email","_backpedal","seen","originalSlug","Renderer","InlineLexer","links","rules","Error","src","output","cap","prevCapZero","inLink","inRawBlock","lastParenIndex","linkLen","slice","outputLink","escapes","codespan","charCodeAt","image","Math","random","toString","DocsPage","enableMenu","checkStatus","SmoothScroll","updateURL","serviceInfoEl","document","querySelector","versionEl","currentStatusEl","serverMessageEl","response","fetch","location","pathname","ok","statusText","classList","remove","apiInfo","json","textContent","version","message","innerHTML","DOMPurify","marked","status","className","err","error","toggle","navbar","toggleMenu","contains","add","addEventListener","navbarLinks","querySelectorAll","Array","from","forEach","autobind","docsPage","init","freeze$1","freeze","x","svg","svgFilters","mathMl","freeze$2","html$1","svg$1","mathMl$1","xml","setPrototypeOf","apply$1","Reflect","apply","addToSet","set","array","element","lcElement","isFrozen","clone","newObject","fun","thisValue","args","seal","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof","iterator","constructor","_toConsumableArray","arr","isArray","arr2","arraySlice","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","suffix","currentScript","hasAttribute","getAttribute","policyName","createHTML","html$$1","createDOMPurify","undefined","root","removed","nodeType","isSupported","originalDocument","useDOMParser","removeTitle","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","TrustedTypes","template","createElement","ownerDocument","trustedTypesPolicy","emptyHTML","_document","implementation","createNodeIterator","getElementsByTagName","createDocumentFragment","importNode","hooks","createHTMLDocument","documentMode","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","concat","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_JQUERY","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","tbody","_forceRemove","node","parentNode","removeChild","outerHTML","_removeAttribute","attribute","getAttributeNode","removeAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","parseFromString","documentElement","firstElementChild","insertBefore","createTextNode","childNodes","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","_isClobbered","elm","nodeName","attributes","setAttribute","namespaceURI","_isNode","_executeHook","entryPoint","currentNode","data","hook","_sanitizeElements","tagName","allowedTags","insertAdjacentHTML","htmlToInsert","cloneNode","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","idAttr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","id","keys","join","setAttributeNS","pop","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","importedNode","oldNode","returnNode","TypeError","toStaticHTML","appendChild","firstChild","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","factory","ArrayIterator","_apply","_call","not","func","throwsError","valueOrFalseIfThrows","isCallableWithoutNew","arePropertyDescriptorsSupported","supportsDescriptors","functionsHaveNames","_forEach","_reduce","reduce","_filter","filter","_some","some","force","configurable","writable","defineProperties","map","forceOverride","method","_toString","isCallable","Value","proxy","originalObject","targetObject","originalDescriptor","getOwnPropertyDescriptor","redefine","newValue","descriptor","defineByDescriptor","preserveToString","properties","Prototype","supportsSubclassing","C","f","Sub","Subclass","arg","self","global","globals","globalIsFinite","isFinite","_indexOf","_arrayIndexOfApply","_concat","_strSlice","_push","_pushApply","_shift","shift","_max","max","_min","min","_floor","floor","_abs","abs","_exp","exp","_log","log","_sqrt","sqrt","_hasOwnProperty","noop","OrigMap","Map","origMapDelete","origMapGet","origMapHas","has","origMapSet","symbolSpecies","species","numberIsNaN","Number","isNaN","numberIsFinite","_sign","sign","number","_log1p","NaN","Infinity","isStandardArguments","isLegacyArguments","callee","isArguments","Type","primitive","string","symbol","overrideNative","replacement","original","hasSymbols","$iterator$","Set","$String","domAll","all","isNullOrUndefined","ES","Call","F","V","IsCallable","RequireObjectCoercible","optMessage","TypeIsObject","ToObject","IsConstructor","ToInt32","ToNumber","ToUint32","ToInteger","ToLength","len","MAX_SAFE_INTEGER","SameValue","a","SameValueZero","IsIterable","GetIterator","itFn","GetMethod","it","IteratorComplete","iterResult","done","IteratorClose","completionIsThrow","returnMethod","innerResult","innerException","IteratorNext","result","next","IteratorStep","Construct","newTarget","isES6internal","construct","proto","SpeciesConstructor","O","defaultConstructor","S","CreateHTML","ToString","p1","IsRegExp","argument","isRegExp","defineWellKnownSymbol","sym","search","symbolSearch","originalSearch","searchShim","regexp","searcher","symbolReplace","originalReplace","replaceValue","replaceShim","searchValue","replacer","symbolSplit","originalSplit","limit","splitShim","separator","splitter","symbolMatchExists","stringMatchIgnoresSymbolMatch","symbolMatch","originalMatch","matchShim","matcher","wrapConstructor","keysToSkip","getOwnPropertyNames","defaultSpeciesGetter","addDefaultSpecies","addIterator","impl","createDataProperty","createDataPropertyOrThrow","emulateES6construct","defaultNewTarget","defaultProto","slots","fromCodePoint","originalFromCodePoint","codePoints","StringShims","RangeError","callSite","cooked","rawString","literalsegments","nextKey","nextSeg","nextSub","stringElements","nextIndex","0","1","stringRepeat","repeat","times","half","stringMaxLength","StringPrototypeShims","thisStr","numTimes","startsWith","searchString","position","searchStr","endsWith","endPosition","pos","end","includes","codePointAt","first","second","startsWithRejectsRegex","startsWithHandlesInfinity","startsWithSupportsSymbolMatch","re","endsWithSupportsSymbolMatch","includesSupportsSymbolMatch","ws","trimRegexp","trimShim","nonWS","nonWSregex","isBadHexRegex","hasStringTrimBug","iteratorResult","StringIterator","_s","_i","ArrayShims","items","mapFn","mapping","T","usingIterator","nextValue","arrayLike","of","A","k","kind","retval","arrayOfSupportsSubclassing","Foo","fooArr","ArrayPrototypeShims","copyWithin","relativeTarget","relativeStart","to","relativeEnd","finalItem","direction","fill","find","predicate","thisArg","findIndex","values","entries","unscopables","originalArrayPrototypeValues","searchElement","getPrototypeOf","arrayFromSwallowsNegativeLengths","arrayFromHandlesIterables","arrayFromHandlesUndefinedMapFunction","origArrayFrom","int32sAsOne","pow","toLengthsCorrectly","reversed","originalForEach","callbackFn","originalMap","originalFilter","originalSome","every","originalEvery","originalReduce","reduceRight","originalReduceRight","lacksOctalSupport","lacksBinarySupport","trimsNonWhitespace","OrigNumber","binaryRegex","octalRegex","isBinary","isOctal","toPrimitive","valueOf","hasNonWS","isBadHex","NumberShim","primValue","receiver","valueOfSucceeds","MAX_VALUE","MIN_VALUE","NEGATIVE_INFINITY","POSITIVE_INFINITY","maxSafeInteger","MIN_SAFE_INTEGER","EPSILON","parseFloat","isInteger","isSafeInteger","FAKENULL","gpo","spo","isEnumerableOn","propertyIsEnumerable","ensureEnumerable","prop","sliceArgs","initial","desiredArgCount","assignTo","assignReducer","symbols","sourceKeys","getOwnPropertySymbols","ObjectShims","assign","is","assignHasPendingExceptions","preventExtensions","thrower","ES5ObjectShims","magic","checkArgs","polyfill","objectKeysAcceptsPrimitives","originalObjectKeys","objectKeysRejectsRegex","regexRejectingObjectKeys","regexKeys","objectGOPNAcceptsPrimitives","cachedWindowNames","originalObjectGetOwnPropertyNames","objectGOPDAcceptsPrimitives","originalObjectGetOwnPropertyDescriptor","objectSealAcceptsPrimitives","originalObjectSeal","isSealed","objectIsSealedAcceptsPrimitives","originalObjectIsSealed","objectFreezeAcceptsPrimitives","originalObjectFreeze","objectIsFrozenAcceptsPrimitives","originalObjectIsFrozen","objectPreventExtensionsAcceptsPrimitives","originalObjectPreventExtensions","isExtensible","objectIsExtensibleAcceptsPrimitives","originalObjectIsExtensible","objectGetProtoAcceptsPrimitives","originalGetProto","desc","hasFlags","regExpFlagsGetter","ignoreCase","multiline","unicode","sticky","regExpSupportsFlagsWithRegex","regExpNeedsToSupportSymbolMatch","regexToStringIsGeneric","regexToStringSupportsGenericFlags","origRegExpToString","R","flagsGetter","sourceDesc","legacySourceGetter","sourceGetter","OrigRegExp","RegExpShim","pattern","patternIsRegExp","$input","regexGlobals","input","lastMatch","lastParen","leftContext","rightContext","inverseEpsilon","roundTiesToEven","BINARY_32_EPSILON","BINARY_32_MAX_VALUE","BINARY_32_MIN_VALUE","E","LOG2E","LOG10E","numberCLZ","clz","MathShims","acosh","xInvSquared","halfX","asinh","aSquared","atanh","cbrt","negate","clz32","cosh","expm1","sum","hypot","y","largest","log2","log10","log1p","sinh","u","tanh","trunc","imul","al","bl","fround","v","withinULPDistance","expected","distance","expm1OfTen","origMathRound","round","roundHandlesBoundaryConditions","smallestPositiveNumberWhereRoundBreaks","largestPositiveNumberWhereRoundBreaks","roundDoesNotIncreaseIntegers","num","origImul","thenable","PromiseShim","setTimeout","IsPromise","promise","_promise","makeZeroTimeout","PromiseCapability","capability","resolve","reject","postMessage","timeouts","event","stopPropagation","fn","P","pr","Promise$prototype","Promise$prototype$then","enqueue","setImmediate","process","nextTick","Promise","task","then","PROMISE_IDENTITY","PROMISE_THROWER","PROMISE_FAKE_CAPABILITY","enqueuePromiseReactionJob","handler","promiseReactionJob","promiseCapability","handlerResult","fulfillPromise","reactionLength","fulfillReactionHandler0","reactionCapability0","rejectReactions0","idx","state","rejectPromise","reason","rejectReactionHandler0","createResolvingFunctions","alreadyResolved","resolution","promiseResolveThenableJob","optimizedThen","resolvingFunctions","resolver","_promiseAllResolver","index","remaining","alreadyCalled","iterable","iteratorRecord","resultCapability","nextPromise","resolveElement","performPromiseAll","exception","ee","race","performPromiseRace","rejectFunc","resolveFunc","onRejected","onFulfilled","returnValueIsIgnored","fulfillReactionHandler","rejectReactionHandler","accept","defer","chain","promiseSupportsSubclassing","promiseIgnoresNonFunctionThenCallbacks","promiseRequiresObjectContext","promiseResolveBroken","p2","getsThenSynchronously","BadResolverPromise","executor","hasBadResolverPromise","origAll","origRace","origResolve","origReject","testOrder","preservesInsertionOrder","preservesNumericInsertionOrder","fastkey","skipInsertionOrderCheck","emptyObject","addIterableToMap","MapConstructor","entry","iter","adder","nextItem","addIterableToSet","SetConstructor","collectionShims","empty","MapEntry","prev","isRemoved","Map$prototype","requireMapSlot","_es6map","isMap","MapIterator","head","_head","isMapIterator","MapShim","_map","_size","_storage","fkey","clear","callback","context","Set$prototype","requireSetSlot","_es6set","isSet","SetShim","ensureMap","decodeKey","size","hasFKey","SetIterator","entireSet","isSetIterator","isGoogleTranslate","mapAcceptsArguments","testMap","mapUsesSameValueZero","mapSupportsChaining","testSet","setUsesSameValueZero","setSupportsChaining","origSetAdd","origSetHas","origSetDel","mapSupportsSubclassing","M","mapFailsToSupportSubclassing","mapRequiresNew","setSupportsSubclassing","setFailsToSupportSubclassing","setRequiresNew","OrigSet","newMap","mapIterationThrowsStopIterator","anonymousSetHas","throwUnlessTargetIsObject","ReflectShims","deleteProperty","ownKeys","callAndCatchException","internalGet","parent","internalSet","propertyKey","objectDotGetPrototypeOf","willCreateCircularPrototype","lastProto","defineOrOverrideReflectProperty","shim","originalReflectGetProto","basic","extensible","Date","dateToString","shimmedDateToString","stringHTMLshims","anchor","big","blink","bold","fixed","fontcolor","color","fontsize","italics","small","strike","sub","sup","shouldOverwrite","quotesCount","JSONstringifiesSymbols","stringify","JSON","JSONstringifyAcceptsObjectSymbol","origStringify","replaceFn","wrappedReplacer","parsedValue","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","Lexer","Parser","TextRenderer","Slugger","tokens","pending","lex","parse","token","setOptions","parser","lexer","inlineLexer","top","loose","bull","listStart","listItems","space","isordered","istask","ischecked","lastToken","trimRight","codeBlockStyle","depth","pre","inlineText","reverse","tok","peek","row","cell","j","tablecell","tablerow","nextToken","checkbox","parseText","listitem","errMsg","Element","closest","parentElement","bubbles","cancelable","detail","createEvent","initCustomEvent","CustomEvent","Event","requestAnimationFrame","cancelAnimationFrame","getTime","q","I","ignore","topOnEmptyHash","speed","speedAsDuration","durationMax","durationMin","clip","easing","customEasing","popstate","emitEvents","InvalidCharacterError","L","scrollHeight","offsetHeight","clientHeight","H","dispatchEvent","cancelScroll","pageYOffset","h","getComputedStyle","height","offsetTop","offsetParent","innerHeight","w","scrollTo","focus","activeElement","style","outline","history","pushState","smoothScroll","matchMedia","defaultPrevented","button","metaKey","ctrlKey","shiftKey","hostname","hash","preventDefault","replaceState","animateScroll","destroy","removeEventListener","support","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","normalizeValue","iteratorFor","Headers","headers","append","consumed","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","buf","view","Uint8Array","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","rejected","arrayBuffer","readAsText","chars","readArrayBufferAsText","formData","decode","oldValue","methods","Request","upcased","credentials","signal","toUpperCase","referrer","form","bytes","Response","bodyInit","redirectStatuses","redirect","DOMException","stack","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","line","parts","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","onreadystatechange","readyState","send","handleDescriptor","initializer","ret","createDefaultSetter","lazyInitialize","_len","_key","decorate","_class","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_initDefineProp","_applyDecoratedDescriptor","decorators","decorator","entryArgs","isDescriptor","Meta","instance","Constructor","_classCallCheck","META_KEY","metaFor","getOwnKeys","getOwnPropertyDescriptors","descs","seenDeprecations","internalDeprecation","msg","_createClass","props","protoProps","staticProps","FUNCTION_REGEXP","SyntaxErrorReporter","parentKlass","childKlass","parentDescriptor","childDescriptor","topic","_extractFunctionSignature","_this","params","parentPropertySignature","childPropertySignature","_getTopic","_extractTopicSignature","parentTopic","childTopic","condition","_this2","parentNotation","childNotation","SyntaxError","getDescriptorType","checkFunctionSignatures","child","reporter","assert","checkDescriptors","parentType","childType","parentValueType","childValueType","checkDataDescriptors","parentHasGetter","childHasGetter","parentHasSetter","childHasSetter","checkAccessorDescriptors","suggestionTransforms","superKlass","superDescriptor","suggestedKey","suggestion","findPossibleAlternatives","override","_extends","_slicedToArray","_arr","_n","_d","_e","sliceIterator","_ref","_ref2","_ref2$","_ref2$2","methodSignature","deprecate","suppressedWarningNoop","applyWithoutWarnings","nativeWarn","suppressWarnings","toObject","cache","applyAndCache","signature","_metaForDescriptor","wrapKey","metaForDescriptor","argumentCache","WeakMap","signatureCache","primativeRefCache","argumentIdCounter","_defineProperty","argRef","argKey","memoize","_len2","_key2","mapStore","autobindClass","klass","autobindMethod","superStore","getBoundSuper","boundFn","handle","readonly","nonenumerable","nonconfigurable","wait","immediate","_metaFor","debounceTimeoutIds","callNow","debounce","leading","trailing","meta","throttleTimeoutIds","throttlePreviousTimestamps","previous","now","throttleTrailingArgs","throttle","originalGet","originalSet","originalValue","isGetter","hasProperty","handleClass","mixins","mixin","labels","defaultConsole","time","label","timeEnd","timeTaken","prefix","superDesc","extendDescriptor","profile","profileEnd","onceThrottleOrFunction","_ref2$3","__enabled","__warned","profileLastRan","applyDecorators","Class"],"mappings":"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","file":"index.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 = 8);\n","/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest = { exec: function noopTest() {} };\n\nfunction merge(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\nmodule.exports = {\n escape,\n unescape,\n edit,\n cleanUrl,\n resolveUrl,\n noopTest,\n merge,\n splitCells,\n rtrim,\n findClosingBracket,\n checkSanitizeDeprecation\n};\n","function getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n xhtml: false\n };\n}\n\nfunction changeDefaults(newDefaults) {\n module.exports.defaults = newDefaults;\n}\n\nmodule.exports = {\n defaults: getDefaults(),\n getDefaults,\n changeDefaults\n};\n","const { defaults } = require('./defaults.js');\nconst {\n cleanUrl,\n escape\n} = require('./helpers.js');\n\n/**\n * Renderer\n */\nmodule.exports = class Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n };\n\n blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n };\n\n html(html) {\n return html;\n };\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n };\n\n hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\n';\n };\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n };\n\n listitem(text) {\n return '<li>' + text + '</li>\\n';\n };\n\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n };\n\n paragraph(text) {\n return '<p>' + text + '</p>\\n';\n };\n\n table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n };\n\n tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\n';\n };\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '</' + type + '>\\n';\n };\n\n // span level renderer\n strong(text) {\n return '<strong>' + text + '</strong>';\n };\n\n em(text) {\n return '<em>' + text + '</em>';\n };\n\n codespan(text) {\n return '<code>' + text + '</code>';\n };\n\n br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n };\n\n del(text) {\n return '<del>' + text + '</del>';\n };\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n };\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\n return out;\n };\n\n text(text) {\n return text;\n };\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","const {\n noopTest,\n edit,\n merge\n} = require('./helpers.js');\n\n/**\n * Block-Level Grammar\n */\nconst block = {\n newline: /^\\n+/,\n code: /^( {4}[^\\n]+\\n*)+/,\n fences: /^ {0,3}(`{3,}|~{3,})([^`~\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6}) +([^\\n]*?)(?: +#+)? *(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?\\\\?>\\\\n*' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?>\\\\n*' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\\\\n*' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (6)\n + '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) open tag\n + '|</(?!script|pre|style)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *<?([^\\s>]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n nptable: noopTest,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}\\.)/;\nblock.item = /^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/;\nblock.item = edit(block.item, 'gm')\n .replace(/bull/g, block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /<!--(?!-?>)[\\s\\S]*?-->/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} +')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}|~{3,})[^`\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n nptable: /^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,\n table: /^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/\n});\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^ *(#{1,6}) *([^\\n]+?) *(?:#+ *)?(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n strong: /^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,\n em: /^_([^\\s_])_(?!_)|^\\*([^\\s*<\\[])\\*(?!\\*)|^_([^\\s<][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_<][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s<\"][\\s\\S]*?[^\\s\\*])\\*(?!\\*|[^\\spunctuation])|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/,\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*]|\\b_|$)|[^ ](?= {2,}\\n))|(?= {2,}\\n))/\n};\n\n// list of punctuation marks from common mark spec\n// without ` and ] to workaround Rule 17 (inline code blocks/links)\ninline._punctuation = '!\"#$%&\\'()*+,\\\\-./:;<=>?@\\\\[^_{|}~';\ninline.em = edit(inline.em).replace(/punctuation/g, inline._punctuation).getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', block._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[[^\\[\\]]*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n em: /^_(?=\\S)([\\s\\S]*?\\S)_(?!_)|^\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)/,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^~+(?=\\S)([\\s\\S]*?\\S)~+/,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*~]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))|(?= {2,}\\n|[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\nmodule.exports = {\n block,\n inline\n};\n","/**\n * Slugger generates header id\n */\nmodule.exports = class Slugger {\n constructor() {\n this.seen = {};\n }\n\n /**\n * Convert string to unique id\n */\n slug(value) {\n let slug = value\n .toLowerCase()\n .trim()\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n\n if (this.seen.hasOwnProperty(slug)) {\n const originalSlug = slug;\n do {\n this.seen[originalSlug]++;\n slug = originalSlug + '-' + this.seen[originalSlug];\n } while (this.seen.hasOwnProperty(slug));\n }\n this.seen[slug] = 0;\n\n return slug;\n };\n};\n","const Renderer = require('./Renderer.js');\nconst { defaults } = require('./defaults.js');\nconst { inline } = require('./rules.js');\nconst {\n findClosingBracket,\n escape\n} = require('./helpers.js');\n\n/**\n * Inline Lexer & Compiler\n */\nmodule.exports = class InlineLexer {\n constructor(links, options) {\n this.options = options || defaults;\n this.links = links;\n this.rules = inline.normal;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n\n if (!this.links) {\n throw new Error('Tokens array requires a `links` property.');\n }\n\n if (this.options.pedantic) {\n this.rules = inline.pedantic;\n } else if (this.options.gfm) {\n if (this.options.breaks) {\n this.rules = inline.breaks;\n } else {\n this.rules = inline.gfm;\n }\n }\n }\n\n /**\n * Expose Inline Rules\n */\n static get rules() {\n return inline;\n }\n\n /**\n * Static Lexing/Compiling Method\n */\n static output(src, links, options) {\n const inline = new InlineLexer(links, options);\n return inline.output(src);\n }\n\n /**\n * Lexing/Compiling\n */\n output(src) {\n let out = '',\n link,\n text,\n href,\n title,\n cap,\n prevCapZero;\n\n while (src) {\n // escape\n if (cap = this.rules.escape.exec(src)) {\n src = src.substring(cap[0].length);\n out += escape(cap[1]);\n continue;\n }\n\n // tag\n if (cap = this.rules.tag.exec(src)) {\n if (!this.inLink && /^<a /i.test(cap[0])) {\n this.inLink = true;\n } else if (this.inLink && /^<\\/a>/i.test(cap[0])) {\n this.inLink = false;\n }\n if (!this.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = true;\n } else if (this.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = false;\n }\n\n src = src.substring(cap[0].length);\n out += this.options.sanitize\n ? this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0])\n : cap[0];\n continue;\n }\n\n // link\n if (cap = this.rules.link.exec(src)) {\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n src = src.substring(cap[0].length);\n this.inLink = true;\n href = cap[2];\n if (this.options.pedantic) {\n link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n } else {\n title = '';\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim().replace(/^<([\\s\\S]*)>$/, '$1');\n out += this.outputLink(cap, {\n href: InlineLexer.escapes(href),\n title: InlineLexer.escapes(title)\n });\n this.inLink = false;\n continue;\n }\n\n // reflink, nolink\n if ((cap = this.rules.reflink.exec(src))\n || (cap = this.rules.nolink.exec(src))) {\n src = src.substring(cap[0].length);\n link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = this.links[link.toLowerCase()];\n if (!link || !link.href) {\n out += cap[0].charAt(0);\n src = cap[0].substring(1) + src;\n continue;\n }\n this.inLink = true;\n out += this.outputLink(cap, link);\n this.inLink = false;\n continue;\n }\n\n // strong\n if (cap = this.rules.strong.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.strong(this.output(cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // em\n if (cap = this.rules.em.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.em(this.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.codespan(escape(cap[2].trim(), true));\n continue;\n }\n\n // br\n if (cap = this.rules.br.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.br();\n continue;\n }\n\n // del (gfm)\n if (cap = this.rules.del.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.del(this.output(cap[1]));\n continue;\n }\n\n // autolink\n if (cap = this.rules.autolink.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[2] === '@') {\n text = escape(this.mangle(cap[1]));\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // url (gfm)\n if (!this.inLink && (cap = this.rules.url.exec(src))) {\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n src = src.substring(cap[0].length);\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n src = src.substring(cap[0].length);\n if (this.inRawBlock) {\n out += this.renderer.text(this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]);\n } else {\n out += this.renderer.text(escape(this.smartypants(cap[0])));\n }\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return out;\n }\n\n static escapes(text) {\n return text ? text.replace(InlineLexer.rules._escapes, '$1') : text;\n }\n\n /**\n * Compile Link\n */\n outputLink(cap, link) {\n const href = link.href,\n title = link.title ? escape(link.title) : null;\n\n return cap[0].charAt(0) !== '!'\n ? this.renderer.link(href, title, this.output(cap[1]))\n : this.renderer.image(href, title, escape(cap[1]));\n }\n\n /**\n * Smartypants Transformations\n */\n smartypants(text) {\n if (!this.options.smartypants) return text;\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n }\n\n /**\n * Mangle Links\n */\n mangle(text) {\n if (!this.options.mangle) return text;\n const l = text.length;\n let out = '',\n i = 0,\n ch;\n\n for (; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n }\n};\n","/**\n * TextRenderer\n * returns only the textual part of the token\n */\nmodule.exports = class TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n};\n","import 'bootstrap/dist/css/bootstrap.min.css';\r\nimport { autobind } from 'core-decorators';\r\nimport * as DOMPurify from 'dompurify';\r\nimport 'es6-shim';\r\nimport * as marked from 'marked';\r\nimport * as SmoothScroll from 'smooth-scroll';\r\nimport 'typeface-roboto-condensed';\r\nimport 'whatwg-fetch';\r\nimport { IGetInfoResponse } from '../services/info.service';\r\n\r\n// API home page and documentation\r\nclass DocsPage {\r\n // Initialises the page once DOM is ready\r\n @autobind\r\n public async init(): Promise<void> {\r\n // Enable resonsive menu\r\n this.enableMenu();\r\n\r\n // Check service status\r\n this.checkStatus();\r\n\r\n // Enable smooth scrolling of page links\r\n const scroll = new SmoothScroll('a[href*=\"#\"]', {\r\n updateURL: false\r\n });\r\n }\r\n\r\n private async checkStatus() {\r\n const serviceInfoEl = document.querySelector('.serviceinfo');\r\n const versionEl = document.querySelector('#version');\r\n const currentStatusEl = document.querySelector('#currentstatus');\r\n const serverMessageEl = document.querySelector('#servermessage');\r\n\r\n // Display current status and version for this xBrowserSync service\r\n try {\r\n const response = await fetch(`${location.pathname}info`);\r\n if (!response.ok) {\r\n throw new Error(response.statusText);\r\n }\r\n\r\n // Display service info block\r\n serviceInfoEl.classList.remove('offline');\r\n\r\n const apiInfo: IGetInfoResponse = await response.json();\r\n if (apiInfo) {\r\n versionEl.textContent = apiInfo.version;\r\n\r\n // If the server has configured a message, display it\r\n if (apiInfo.message) {\r\n serverMessageEl.innerHTML = DOMPurify.sanitize(marked(apiInfo.message));\r\n }\r\n }\r\n\r\n switch (apiInfo.status) {\r\n case 1:\r\n currentStatusEl.textContent = 'Online';\r\n currentStatusEl.className = 'text-success';\r\n break;\r\n case 3:\r\n currentStatusEl.textContent = 'Not accepting new syncs';\r\n currentStatusEl.className = 'text-warning';\r\n break;\r\n default:\r\n case 2:\r\n currentStatusEl.textContent = 'Offline';\r\n currentStatusEl.className = 'text-danger';\r\n break;\r\n }\r\n }\r\n catch (err) {\r\n currentStatusEl.textContent = 'Offline';\r\n currentStatusEl.className = 'text-danger';\r\n console.error(err);\r\n }\r\n }\r\n\r\n private enableMenu() {\r\n const toggle = document.querySelector<HTMLButtonElement>('.nav-menu-button');\r\n const navbar = document.querySelector('nav');\r\n\r\n const toggleMenu = () => {\r\n // Toggle menu display and menu button hide\r\n if (navbar.classList.contains('open')) {\r\n navbar.classList.remove('open');\r\n toggle.classList.remove('hide');\r\n document.body.classList.remove('noscroll');\r\n }\r\n else {\r\n navbar.classList.add('open');\r\n toggle.classList.add('hide');\r\n document.body.classList.add('noscroll');\r\n }\r\n };\r\n\r\n // Enable menu button\r\n toggle.addEventListener('click', e => {\r\n toggleMenu();\r\n });\r\n\r\n // Hide menu when nav link is clicked\r\n const navbarLinks = navbar.querySelectorAll('a');\r\n Array.from(navbarLinks).forEach(link => {\r\n link.addEventListener('click', e => {\r\n toggleMenu();\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst docsPage = new DocsPage();\r\ndocument.addEventListener('DOMContentLoaded', docsPage.init);","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.DOMPurify = factory());\n}(this, (function () { 'use strict';\n\nvar freeze$1 = Object.freeze || function (x) {\n return x;\n};\n\nvar html = freeze$1(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n// SVG\nvar svg = freeze$1(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'audio', 'canvas', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'video', 'view', 'vkern']);\n\nvar svgFilters = freeze$1(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\nvar mathMl = freeze$1(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\nvar text = freeze$1(['#text']);\n\nvar freeze$2 = Object.freeze || function (x) {\n return x;\n};\n\nvar html$1 = freeze$2(['accept', 'action', 'align', 'alt', 'autocomplete', 'background', 'bgcolor', 'border', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'coords', 'crossorigin', 'datetime', 'default', 'dir', 'disabled', 'download', 'enctype', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'integrity', 'ismap', 'label', 'lang', 'list', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns']);\n\nvar svg$1 = freeze$2(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\nvar mathMl$1 = freeze$2(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\nvar xml = freeze$2(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nvar hasOwnProperty = Object.hasOwnProperty;\nvar setPrototypeOf = Object.setPrototypeOf;\n\nvar _ref$1 = typeof Reflect !== 'undefined' && Reflect;\nvar apply$1 = _ref$1.apply;\n\nif (!apply$1) {\n apply$1 = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\n/* Add properties to a lookup table */\nfunction addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = element.toLowerCase();\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!Object.isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/* Shallow clone an object */\nfunction clone(object) {\n var newObject = {};\n\n var property = void 0;\n for (property in object) {\n if (apply$1(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n}\n\nvar seal = Object.seal || function (x) {\n return x;\n};\n\nvar MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nvar ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\nvar DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nvar ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nvar IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nvar IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nvar ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g // eslint-disable-line no-control-regex\n);\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar _ref = typeof Reflect !== 'undefined' && Reflect;\nvar apply = _ref.apply;\n\nvar arraySlice = Array.prototype.slice;\nvar freeze = Object.freeze;\n\nvar getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nvar _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (error) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\n\nfunction createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.0.7';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var useDOMParser = false;\n var removeTitle = false;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n TrustedTypes = window.TrustedTypes;\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(TrustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n getElementsByTagName = _document.getElementsByTagName,\n createDocumentFragment = _document.createDocumentFragment;\n var importNode = originalDocument.importNode;\n\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = implementation && typeof implementation.createHTMLDocument !== 'undefined' && document.documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(svgFilters), _toConsumableArray(mathMl), _toConsumableArray(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(mathMl$1), _toConsumableArray(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for jQuery's $() factory? */\n var SAFE_FOR_JQUERY = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify. */\n var RETURN_DOM_IMPORT = false;\n\n /* Try to return a Trusted Type object instead of a string, retrun a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_JQUERY = cfg.SAFE_FOR_JQUERY || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n DOMPurify.removed.push({ element: node });\n try {\n node.parentNode.removeChild(node);\n } catch (error) {\n node.outerHTML = emptyHTML;\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n DOMPurify.removed.push({\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (error) {\n DOMPurify.removed.push({\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = dirty.match(/^[\\s]+/);\n leadingWhitespace = matches && matches[0];\n if (leadingWhitespace) {\n dirty = dirty.slice(leadingWhitespace.length);\n }\n }\n\n /* Use DOMParser to workaround Firefox bug (see comment below) */\n if (useDOMParser) {\n try {\n doc = new DOMParser().parseFromString(dirty, 'text/html');\n } catch (error) {}\n }\n\n /* Remove title to fix a mXSS bug in older MS Edge */\n if (removeTitle) {\n addToSet(FORBID_TAGS, ['title']);\n }\n\n /* Otherwise use createHTMLDocument, because DOMParser is unsafe in\n Safari (see comment below) */\n if (!doc || !doc.documentElement) {\n doc = implementation.createHTMLDocument('');\n var _doc = doc,\n body = _doc.body;\n\n body.parentNode.removeChild(body.parentNode.firstElementChild);\n body.outerHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n if (dirty && leadingWhitespace) {\n doc.body.insertBefore(document.createTextNode(leadingWhitespace), doc.body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n };\n\n // Firefox uses a different parser for innerHTML rather than\n // DOMParser (see https://bugzilla.mozilla.org/show_bug.cgi?id=1205631)\n // which means that you *must* use DOMParser, otherwise the output may\n // not be safe if used in a document.write context later.\n //\n // So we feature detect the Firefox bug and use the DOMParser if necessary.\n //\n // Chrome 77 and other versions ship an mXSS bug that caused a bypass to\n // happen. We now check for the mXSS trigger and react accordingly.\n if (DOMPurify.isSupported) {\n (function () {\n try {\n var doc = _initDocument('<svg><p><textarea><img src=\"</textarea><img src=x abc=1//\">');\n if (doc.querySelector('svg img')) {\n useDOMParser = true;\n }\n } catch (error) {}\n })();\n\n (function () {\n try {\n var doc = _initDocument('<x/><title></title><img>');\n if (/<\\/title/.test(doc.querySelector('title').innerHTML)) {\n removeTitle = true;\n }\n } catch (error) {}\n })();\n }\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, function () {\n return NodeFilter.FILTER_ACCEPT;\n }, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(obj) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? obj instanceof Node : obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n hooks[entryPoint].forEach(function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n // eslint-disable-next-line complexity\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = currentNode.nodeName.toLowerCase();\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Take care of an mXSS pattern using p, br inside svg, math */\n if ((tagName === 'svg' || tagName === 'math') && currentNode.querySelectorAll('p, br').length !== 0) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for black-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName] && typeof currentNode.insertAdjacentHTML === 'function') {\n try {\n var htmlToInsert = currentNode.innerHTML;\n currentNode.insertAdjacentHTML('AfterEnd', trustedTypesPolicy ? trustedTypesPolicy.createHTML(htmlToInsert) : htmlToInsert);\n } catch (error) {}\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove in case a noscript/noembed XSS is suspected */\n if (tagName === 'noscript' && /<\\/noscript/i.test(currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if (tagName === 'noembed' && /<\\/noembed/i.test(currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Convert markup to cover jQuery behavior */\n if (SAFE_FOR_JQUERY && !currentNode.firstElementChild && (!currentNode.content || !currentNode.content.firstElementChild) && /</g.test(currentNode.textContent)) {\n DOMPurify.removed.push({ element: currentNode.cloneNode() });\n if (currentNode.innerHTML) {\n currentNode.innerHTML = currentNode.innerHTML.replace(/</g, '<');\n } else {\n currentNode.innerHTML = currentNode.textContent.replace(/</g, '<');\n }\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = content.replace(MUSTACHE_EXPR$$1, ' ');\n content = content.replace(ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n DOMPurify.removed.push({ element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && DATA_ATTR$$1.test(lcName)) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && ARIA_ATTR$$1.test(lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (IS_ALLOWED_URI$$1.test(value.replace(ATTR_WHITESPACE$$1, ''))) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && value.indexOf('data:') === 0 && DATA_URI_TAGS[lcTag]) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (ALLOW_UNKNOWN_PROTOCOLS && !IS_SCRIPT_OR_DATA$$1.test(value.replace(ATTR_WHITESPACE$$1, ''))) {\n // This attribute is safe\n /* Check for binary attributes */\n // eslint-disable-next-line no-negated-condition\n } else if (!value) {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n } else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n // eslint-disable-next-line complexity\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var idAttr = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = attr.value.trim();\n lcName = name.toLowerCase();\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Remove attribute */\n // Safari (iOS + Mac), last tested v8.0.5, crashes if you try to\n // remove a \"name\" attribute from an <img> tag that has an \"id\"\n // attribute at the time.\n if (lcName === 'name' && currentNode.nodeName === 'IMG' && attributes.id) {\n idAttr = attributes.id;\n attributes = apply(arraySlice, attributes, []);\n _removeAttribute('id', currentNode);\n _removeAttribute(name, currentNode);\n if (attributes.indexOf(idAttr) > l) {\n currentNode.setAttribute('id', idAttr.value);\n }\n } else if (\n // This works around a bug in Safari, where input[type=file]\n // cannot be dynamically set after type has been removed\n currentNode.nodeName === 'INPUT' && lcName === 'type' && value === 'file' && hookEvent.keepAttr && (ALLOWED_ATTR[lcName] || !FORBID_ATTR[lcName])) {\n continue;\n } else {\n // This avoids a crash in Safari v9.0 with double-ids.\n // The trick is to first set the id to be empty and then to\n // remove the attribute\n if (name === 'id') {\n currentNode.setAttribute(name, '');\n }\n\n _removeAttribute(name, currentNode);\n }\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Take care of an mXSS pattern using namespace switches */\n if (/svg|math/i.test(currentNode.namespaceURI) && new RegExp('</(' + Object.keys(FORBID_CONTENTS).join('|') + ')', 'i').test(value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = value.replace(MUSTACHE_EXPR$$1, ' ');\n value = value.replace(ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = currentNode.nodeName.toLowerCase();\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n DOMPurify.removed.pop();\n } catch (error) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n if (!dirty) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw new TypeError('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw new TypeError('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n if (IN_PLACE) {\n /* No special handling necessary for in-place sanitization */\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!-->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && RETURN_TRUSTED_TYPE && dirty.indexOf('<') === -1) {\n return trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /* AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs. */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = serializedHTML.replace(MUSTACHE_EXPR$$1, ' ');\n serializedHTML = serializedHTML.replace(ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = tag.toLowerCase();\n var lcName = attr.toLowerCase();\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n hooks[entryPoint].push(hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint].pop();\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nvar purify = createDOMPurify();\n\nreturn purify;\n\n})));\n//# sourceMappingURL=purify.js.map\n","/*!\n * https://github.com/paulmillr/es6-shim\n * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com)\n * and contributors, MIT License\n * es6-shim: v0.35.4\n * see https://github.com/paulmillr/es6-shim/blob/0.35.3/LICENSE\n * Details and documentation:\n * https://github.com/paulmillr/es6-shim/\n */\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/returnExports.js\n(function (root, factory) {\n /*global define, module, exports */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n}(this, function () {\n 'use strict';\n\n var _apply = Function.call.bind(Function.apply);\n var _call = Function.call.bind(Function.call);\n var isArray = Array.isArray;\n var keys = Object.keys;\n\n var not = function notThunker(func) {\n return function notThunk() {\n return !_apply(func, this, arguments);\n };\n };\n var throwsError = function (func) {\n try {\n func();\n return false;\n } catch (e) {\n return true;\n }\n };\n var valueOrFalseIfThrows = function valueOrFalseIfThrows(func) {\n try {\n return func();\n } catch (e) {\n return false;\n }\n };\n\n var isCallableWithoutNew = not(throwsError);\n var arePropertyDescriptorsSupported = function () {\n // if Object.defineProperty exists but throws, it's IE 8\n return !throwsError(function () {\n return Object.defineProperty({}, 'x', { get: function () { } }); // eslint-disable-line getter-return\n });\n };\n var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported();\n var functionsHaveNames = (function foo() {}).name === 'foo'; // eslint-disable-line no-extra-parens\n\n var _forEach = Function.call.bind(Array.prototype.forEach);\n var _reduce = Function.call.bind(Array.prototype.reduce);\n var _filter = Function.call.bind(Array.prototype.filter);\n var _some = Function.call.bind(Array.prototype.some);\n\n var defineProperty = function (object, name, value, force) {\n if (!force && name in object) { return; }\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n // Define configurable, writable and non-enumerable props\n // if they don’t exist.\n var defineProperties = function (object, map, forceOverride) {\n _forEach(keys(map), function (name) {\n var method = map[name];\n defineProperty(object, name, method, !!forceOverride);\n });\n };\n\n var _toString = Function.call.bind(Object.prototype.toString);\n var isCallable = typeof /abc/ === 'function' ? function IsCallableSlow(x) {\n // Some old browsers (IE, FF) say that typeof /abc/ === 'function'\n return typeof x === 'function' && _toString(x) === '[object Function]';\n } : function IsCallableFast(x) { return typeof x === 'function'; };\n\n var Value = {\n getter: function (object, name, getter) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n get: getter\n });\n },\n proxy: function (originalObject, key, targetObject) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key);\n Object.defineProperty(targetObject, key, {\n configurable: originalDescriptor.configurable,\n enumerable: originalDescriptor.enumerable,\n get: function getKey() { return originalObject[key]; },\n set: function setKey(value) { originalObject[key] = value; }\n });\n },\n redefine: function (object, property, newValue) {\n if (supportsDescriptors) {\n var descriptor = Object.getOwnPropertyDescriptor(object, property);\n descriptor.value = newValue;\n Object.defineProperty(object, property, descriptor);\n } else {\n object[property] = newValue;\n }\n },\n defineByDescriptor: function (object, property, descriptor) {\n if (supportsDescriptors) {\n Object.defineProperty(object, property, descriptor);\n } else if ('value' in descriptor) {\n object[property] = descriptor.value;\n }\n },\n preserveToString: function (target, source) {\n if (source && isCallable(source.toString)) {\n defineProperty(target, 'toString', source.toString.bind(source), true);\n }\n }\n };\n\n // Simple shim for Object.create on ES3 browsers\n // (unlike real shim, no attempt to support `prototype === null`)\n var create = Object.create || function (prototype, properties) {\n var Prototype = function Prototype() {};\n Prototype.prototype = prototype;\n var object = new Prototype();\n if (typeof properties !== 'undefined') {\n keys(properties).forEach(function (key) {\n Value.defineByDescriptor(object, key, properties[key]);\n });\n }\n return object;\n };\n\n var supportsSubclassing = function (C, f) {\n if (!Object.setPrototypeOf) { return false; /* skip test on IE < 11 */ }\n return valueOrFalseIfThrows(function () {\n var Sub = function Subclass(arg) {\n var o = new C(arg);\n Object.setPrototypeOf(o, Subclass.prototype);\n return o;\n };\n Object.setPrototypeOf(Sub, C);\n Sub.prototype = create(C.prototype, {\n constructor: { value: Sub }\n });\n return f(Sub);\n });\n };\n\n var getGlobal = function () {\n /* global self, window, global */\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n };\n\n var globals = getGlobal();\n var globalIsFinite = globals.isFinite;\n var _indexOf = Function.call.bind(String.prototype.indexOf);\n var _arrayIndexOfApply = Function.apply.bind(Array.prototype.indexOf);\n var _concat = Function.call.bind(Array.prototype.concat);\n // var _sort = Function.call.bind(Array.prototype.sort);\n var _strSlice = Function.call.bind(String.prototype.slice);\n var _push = Function.call.bind(Array.prototype.push);\n var _pushApply = Function.apply.bind(Array.prototype.push);\n var _shift = Function.call.bind(Array.prototype.shift);\n var _max = Math.max;\n var _min = Math.min;\n var _floor = Math.floor;\n var _abs = Math.abs;\n var _exp = Math.exp;\n var _log = Math.log;\n var _sqrt = Math.sqrt;\n var _hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n var ArrayIterator; // make our implementation private\n var noop = function () {};\n\n var OrigMap = globals.Map;\n var origMapDelete = OrigMap && OrigMap.prototype['delete'];\n var origMapGet = OrigMap && OrigMap.prototype.get;\n var origMapHas = OrigMap && OrigMap.prototype.has;\n var origMapSet = OrigMap && OrigMap.prototype.set;\n\n var Symbol = globals.Symbol || {};\n var symbolSpecies = Symbol.species || '@@species';\n\n var numberIsNaN = Number.isNaN || function isNaN(value) {\n // NaN !== NaN, but they are identical.\n // NaNs are the only non-reflexive value, i.e., if x !== x,\n // then x is NaN.\n // isNaN is broken: it converts its argument to number, so\n // isNaN('foo') => true\n return value !== value;\n };\n var numberIsFinite = Number.isFinite || function isFinite(value) {\n return typeof value === 'number' && globalIsFinite(value);\n };\n var _sign = isCallable(Math.sign) ? Math.sign : function sign(value) {\n var number = Number(value);\n if (number === 0) { return number; }\n if (numberIsNaN(number)) { return number; }\n return number < 0 ? -1 : 1;\n };\n var _log1p = function log1p(value) {\n var x = Number(value);\n if (x < -1 || numberIsNaN(x)) { return NaN; }\n if (x === 0 || x === Infinity) { return x; }\n if (x === -1) { return -Infinity; }\n\n return (1 + x) - 1 === 0 ? x : x * (_log(1 + x) / ((1 + x) - 1));\n };\n\n // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n // can be replaced with require('is-arguments') if we ever use a build process instead\n var isStandardArguments = function isArguments(value) {\n return _toString(value) === '[object Arguments]';\n };\n var isLegacyArguments = function isArguments(value) {\n return value !== null &&\n typeof value === 'object' &&\n typeof value.length === 'number' &&\n value.length >= 0 &&\n _toString(value) !== '[object Array]' &&\n _toString(value.callee) === '[object Function]';\n };\n var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n\n var Type = {\n primitive: function (x) { return x === null || (typeof x !== 'function' && typeof x !== 'object'); },\n string: function (x) { return _toString(x) === '[object String]'; },\n regex: function (x) { return _toString(x) === '[object RegExp]'; },\n symbol: function (x) {\n return typeof globals.Symbol === 'function' && typeof x === 'symbol';\n }\n };\n\n var overrideNative = function overrideNative(object, property, replacement) {\n var original = object[property];\n defineProperty(object, property, replacement, true);\n Value.preserveToString(object[property], original);\n };\n\n // eslint-disable-next-line no-restricted-properties\n var hasSymbols = typeof Symbol === 'function' && typeof Symbol['for'] === 'function' && Type.symbol(Symbol());\n\n // This is a private name in the es6 spec, equal to '[Symbol.iterator]'\n // we're going to use an arbitrary _-prefixed name to make our shims\n // work properly with each other, even though we don't have full Iterator\n // support. That is, `Array.from(map.keys())` will work, but we don't\n // pretend to export a \"real\" Iterator interface.\n var $iterator$ = Type.symbol(Symbol.iterator) ? Symbol.iterator : '_es6-shim iterator_';\n // Firefox ships a partial implementation using the name @@iterator.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14\n // So use that name if we detect it.\n if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') {\n $iterator$ = '@@iterator';\n }\n\n // Reflect\n if (!globals.Reflect) {\n defineProperty(globals, 'Reflect', {}, true);\n }\n var Reflect = globals.Reflect;\n\n var $String = String;\n\n /* global document */\n var domAll = (typeof document === 'undefined' || !document) ? null : document.all;\n var isNullOrUndefined = domAll == null ? function isNullOrUndefined(x) {\n return x == null;\n } : function isNullOrUndefinedAndNotDocumentAll(x) {\n return x == null && x !== domAll;\n };\n\n var ES = {\n // http://www.ecma-international.org/ecma-262/6.0/#sec-call\n Call: function Call(F, V) {\n var args = arguments.length > 2 ? arguments[2] : [];\n if (!ES.IsCallable(F)) {\n throw new TypeError(F + ' is not a function');\n }\n return _apply(F, V, args);\n },\n\n RequireObjectCoercible: function (x, optMessage) {\n if (isNullOrUndefined(x)) {\n throw new TypeError(optMessage || 'Cannot call method on ' + x);\n }\n return x;\n },\n\n // This might miss the \"(non-standard exotic and does not implement\n // [[Call]])\" case from\n // http://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator-runtime-semantics-evaluation\n // but we can't find any evidence these objects exist in practice.\n // If we find some in the future, you could test `Object(x) === x`,\n // which is reliable according to\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toobject\n // but is not well optimized by runtimes and creates an object\n // whenever it returns false, and thus is very slow.\n TypeIsObject: function (x) {\n if (x === void 0 || x === null || x === true || x === false) {\n return false;\n }\n return typeof x === 'function' || typeof x === 'object' || x === domAll;\n },\n\n ToObject: function (o, optMessage) {\n return Object(ES.RequireObjectCoercible(o, optMessage));\n },\n\n IsCallable: isCallable,\n\n IsConstructor: function (x) {\n // We can't tell callables from constructors in ES5\n return ES.IsCallable(x);\n },\n\n ToInt32: function (x) {\n return ES.ToNumber(x) >> 0;\n },\n\n ToUint32: function (x) {\n return ES.ToNumber(x) >>> 0;\n },\n\n ToNumber: function (value) {\n if (_toString(value) === '[object Symbol]') {\n throw new TypeError('Cannot convert a Symbol value to a number');\n }\n return +value;\n },\n\n ToInteger: function (value) {\n var number = ES.ToNumber(value);\n if (numberIsNaN(number)) { return 0; }\n if (number === 0 || !numberIsFinite(number)) { return number; }\n return (number > 0 ? 1 : -1) * _floor(_abs(number));\n },\n\n ToLength: function (value) {\n var len = ES.ToInteger(value);\n if (len <= 0) { return 0; } // includes converting -0 to +0\n if (len > Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER; }\n return len;\n },\n\n SameValue: function (a, b) {\n if (a === b) {\n // 0 === -0, but they are not identical.\n if (a === 0) { return 1 / a === 1 / b; }\n return true;\n }\n return numberIsNaN(a) && numberIsNaN(b);\n },\n\n SameValueZero: function (a, b) {\n // same as SameValue except for SameValueZero(+0, -0) == true\n return (a === b) || (numberIsNaN(a) && numberIsNaN(b));\n },\n\n IsIterable: function (o) {\n return ES.TypeIsObject(o) && (typeof o[$iterator$] !== 'undefined' || isArguments(o));\n },\n\n GetIterator: function (o) {\n if (isArguments(o)) {\n // special case support for `arguments`\n return new ArrayIterator(o, 'value');\n }\n var itFn = ES.GetMethod(o, $iterator$);\n if (!ES.IsCallable(itFn)) {\n // Better diagnostics if itFn is null or undefined\n throw new TypeError('value is not an iterable');\n }\n var it = ES.Call(itFn, o);\n if (!ES.TypeIsObject(it)) {\n throw new TypeError('bad iterator');\n }\n return it;\n },\n\n GetMethod: function (o, p) {\n var func = ES.ToObject(o)[p];\n if (isNullOrUndefined(func)) {\n return void 0;\n }\n if (!ES.IsCallable(func)) {\n throw new TypeError('Method not callable: ' + p);\n }\n return func;\n },\n\n IteratorComplete: function (iterResult) {\n return !!iterResult.done;\n },\n\n IteratorClose: function (iterator, completionIsThrow) {\n var returnMethod = ES.GetMethod(iterator, 'return');\n if (returnMethod === void 0) {\n return;\n }\n var innerResult, innerException;\n try {\n innerResult = ES.Call(returnMethod, iterator);\n } catch (e) {\n innerException = e;\n }\n if (completionIsThrow) {\n return;\n }\n if (innerException) {\n throw innerException;\n }\n if (!ES.TypeIsObject(innerResult)) {\n throw new TypeError(\"Iterator's return method returned a non-object.\");\n }\n },\n\n IteratorNext: function (it) {\n var result = arguments.length > 1 ? it.next(arguments[1]) : it.next();\n if (!ES.TypeIsObject(result)) {\n throw new TypeError('bad iterator');\n }\n return result;\n },\n\n IteratorStep: function (it) {\n var result = ES.IteratorNext(it);\n var done = ES.IteratorComplete(result);\n return done ? false : result;\n },\n\n Construct: function (C, args, newTarget, isES6internal) {\n var target = typeof newTarget === 'undefined' ? C : newTarget;\n\n if (!isES6internal && Reflect.construct) {\n // Try to use Reflect.construct if available\n return Reflect.construct(C, args, target);\n }\n // OK, we have to fake it. This will only work if the\n // C.[[ConstructorKind]] == \"base\" -- but that's the only\n // kind we can make in ES5 code anyway.\n\n // OrdinaryCreateFromConstructor(target, \"%ObjectPrototype%\")\n var proto = target.prototype;\n if (!ES.TypeIsObject(proto)) {\n proto = Object.prototype;\n }\n var obj = create(proto);\n // Call the constructor.\n var result = ES.Call(C, obj, args);\n return ES.TypeIsObject(result) ? result : obj;\n },\n\n SpeciesConstructor: function (O, defaultConstructor) {\n var C = O.constructor;\n if (C === void 0) {\n return defaultConstructor;\n }\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad constructor');\n }\n var S = C[symbolSpecies];\n if (isNullOrUndefined(S)) {\n return defaultConstructor;\n }\n if (!ES.IsConstructor(S)) {\n throw new TypeError('Bad @@species');\n }\n return S;\n },\n\n CreateHTML: function (string, tag, attribute, value) {\n var S = ES.ToString(string);\n var p1 = '<' + tag;\n if (attribute !== '') {\n var V = ES.ToString(value);\n var escapedV = V.replace(/\"/g, '"');\n p1 += ' ' + attribute + '=\"' + escapedV + '\"';\n }\n var p2 = p1 + '>';\n var p3 = p2 + S;\n return p3 + '</' + tag + '>';\n },\n\n IsRegExp: function IsRegExp(argument) {\n if (!ES.TypeIsObject(argument)) {\n return false;\n }\n var isRegExp = argument[Symbol.match];\n if (typeof isRegExp !== 'undefined') {\n return !!isRegExp;\n }\n return Type.regex(argument);\n },\n\n ToString: function ToString(string) {\n return $String(string);\n }\n };\n\n // Well-known Symbol shims\n if (supportsDescriptors && hasSymbols) {\n var defineWellKnownSymbol = function defineWellKnownSymbol(name) {\n if (Type.symbol(Symbol[name])) {\n return Symbol[name];\n }\n // eslint-disable-next-line no-restricted-properties\n var sym = Symbol['for']('Symbol.' + name);\n Object.defineProperty(Symbol, name, {\n configurable: false,\n enumerable: false,\n writable: false,\n value: sym\n });\n return sym;\n };\n if (!Type.symbol(Symbol.search)) {\n var symbolSearch = defineWellKnownSymbol('search');\n var originalSearch = String.prototype.search;\n defineProperty(RegExp.prototype, symbolSearch, function search(string) {\n return ES.Call(originalSearch, string, [this]);\n });\n var searchShim = function search(regexp) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(regexp)) {\n var searcher = ES.GetMethod(regexp, symbolSearch);\n if (typeof searcher !== 'undefined') {\n return ES.Call(searcher, regexp, [O]);\n }\n }\n return ES.Call(originalSearch, O, [ES.ToString(regexp)]);\n };\n overrideNative(String.prototype, 'search', searchShim);\n }\n if (!Type.symbol(Symbol.replace)) {\n var symbolReplace = defineWellKnownSymbol('replace');\n var originalReplace = String.prototype.replace;\n defineProperty(RegExp.prototype, symbolReplace, function replace(string, replaceValue) {\n return ES.Call(originalReplace, string, [this, replaceValue]);\n });\n var replaceShim = function replace(searchValue, replaceValue) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(searchValue)) {\n var replacer = ES.GetMethod(searchValue, symbolReplace);\n if (typeof replacer !== 'undefined') {\n return ES.Call(replacer, searchValue, [O, replaceValue]);\n }\n }\n return ES.Call(originalReplace, O, [ES.ToString(searchValue), replaceValue]);\n };\n overrideNative(String.prototype, 'replace', replaceShim);\n }\n if (!Type.symbol(Symbol.split)) {\n var symbolSplit = defineWellKnownSymbol('split');\n var originalSplit = String.prototype.split;\n defineProperty(RegExp.prototype, symbolSplit, function split(string, limit) {\n return ES.Call(originalSplit, string, [this, limit]);\n });\n var splitShim = function split(separator, limit) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(separator)) {\n var splitter = ES.GetMethod(separator, symbolSplit);\n if (typeof splitter !== 'undefined') {\n return ES.Call(splitter, separator, [O, limit]);\n }\n }\n return ES.Call(originalSplit, O, [ES.ToString(separator), limit]);\n };\n overrideNative(String.prototype, 'split', splitShim);\n }\n var symbolMatchExists = Type.symbol(Symbol.match);\n var stringMatchIgnoresSymbolMatch = symbolMatchExists && (function () {\n // Firefox 41, through Nightly 45 has Symbol.match, but String#match ignores it.\n // Firefox 40 and below have Symbol.match but String#match works fine.\n var o = {};\n o[Symbol.match] = function () { return 42; };\n return 'a'.match(o) !== 42;\n }());\n if (!symbolMatchExists || stringMatchIgnoresSymbolMatch) {\n var symbolMatch = defineWellKnownSymbol('match');\n\n var originalMatch = String.prototype.match;\n defineProperty(RegExp.prototype, symbolMatch, function match(string) {\n return ES.Call(originalMatch, string, [this]);\n });\n\n var matchShim = function match(regexp) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(regexp)) {\n var matcher = ES.GetMethod(regexp, symbolMatch);\n if (typeof matcher !== 'undefined') {\n return ES.Call(matcher, regexp, [O]);\n }\n }\n return ES.Call(originalMatch, O, [ES.ToString(regexp)]);\n };\n overrideNative(String.prototype, 'match', matchShim);\n }\n }\n\n var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) {\n Value.preserveToString(replacement, original);\n if (Object.setPrototypeOf) {\n // sets up proper prototype chain where possible\n Object.setPrototypeOf(original, replacement);\n }\n if (supportsDescriptors) {\n _forEach(Object.getOwnPropertyNames(original), function (key) {\n if (key in noop || keysToSkip[key]) { return; }\n Value.proxy(original, key, replacement);\n });\n } else {\n _forEach(Object.keys(original), function (key) {\n if (key in noop || keysToSkip[key]) { return; }\n replacement[key] = original[key];\n });\n }\n replacement.prototype = original.prototype;\n Value.redefine(original.prototype, 'constructor', replacement);\n };\n\n var defaultSpeciesGetter = function () { return this; };\n var addDefaultSpecies = function (C) {\n if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) {\n Value.getter(C, symbolSpecies, defaultSpeciesGetter);\n }\n };\n\n var addIterator = function (prototype, impl) {\n var implementation = impl || function iterator() { return this; };\n defineProperty(prototype, $iterator$, implementation);\n if (!prototype[$iterator$] && Type.symbol($iterator$)) {\n // implementations are buggy when $iterator$ is a Symbol\n prototype[$iterator$] = implementation;\n }\n };\n\n var createDataProperty = function createDataProperty(object, name, value) {\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) {\n createDataProperty(object, name, value);\n if (!ES.SameValue(object[name], value)) {\n throw new TypeError('property is nonconfigurable');\n }\n };\n\n var emulateES6construct = function (o, defaultNewTarget, defaultProto, slots) {\n // This is an es5 approximation to es6 construct semantics. in es6,\n // 'new Foo' invokes Foo.[[Construct]] which (for almost all objects)\n // just sets the internal variable NewTarget (in es6 syntax `new.target`)\n // to Foo and then returns Foo().\n\n // Many ES6 object then have constructors of the form:\n // 1. If NewTarget is undefined, throw a TypeError exception\n // 2. Let xxx by OrdinaryCreateFromConstructor(NewTarget, yyy, zzz)\n\n // So we're going to emulate those first two steps.\n if (!ES.TypeIsObject(o)) {\n throw new TypeError('Constructor requires `new`: ' + defaultNewTarget.name);\n }\n var proto = defaultNewTarget.prototype;\n if (!ES.TypeIsObject(proto)) {\n proto = defaultProto;\n }\n var obj = create(proto);\n for (var name in slots) {\n if (_hasOwnProperty(slots, name)) {\n var value = slots[name];\n defineProperty(obj, name, value, true);\n }\n }\n return obj;\n };\n\n // Firefox 31 reports this function's length as 0\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1062484\n if (String.fromCodePoint && String.fromCodePoint.length !== 1) {\n var originalFromCodePoint = String.fromCodePoint;\n overrideNative(String, 'fromCodePoint', function fromCodePoint(codePoints) {\n return ES.Call(originalFromCodePoint, this, arguments);\n });\n }\n\n var StringShims = {\n fromCodePoint: function fromCodePoint(codePoints) {\n var result = [];\n var next;\n for (var i = 0, length = arguments.length; i < length; i++) {\n next = Number(arguments[i]);\n if (!ES.SameValue(next, ES.ToInteger(next)) || next < 0 || next > 0x10FFFF) {\n throw new RangeError('Invalid code point ' + next);\n }\n\n if (next < 0x10000) {\n _push(result, String.fromCharCode(next));\n } else {\n next -= 0x10000;\n _push(result, String.fromCharCode((next >> 10) + 0xD800));\n _push(result, String.fromCharCode((next % 0x400) + 0xDC00));\n }\n }\n return result.join('');\n },\n\n raw: function raw(callSite) {\n var cooked = ES.ToObject(callSite, 'bad callSite');\n var rawString = ES.ToObject(cooked.raw, 'bad raw value');\n var len = rawString.length;\n var literalsegments = ES.ToLength(len);\n if (literalsegments <= 0) {\n return '';\n }\n\n var stringElements = [];\n var nextIndex = 0;\n var nextKey, next, nextSeg, nextSub;\n while (nextIndex < literalsegments) {\n nextKey = ES.ToString(nextIndex);\n nextSeg = ES.ToString(rawString[nextKey]);\n _push(stringElements, nextSeg);\n if (nextIndex + 1 >= literalsegments) {\n break;\n }\n next = nextIndex + 1 < arguments.length ? arguments[nextIndex + 1] : '';\n nextSub = ES.ToString(next);\n _push(stringElements, nextSub);\n nextIndex += 1;\n }\n return stringElements.join('');\n }\n };\n if (String.raw && String.raw({ raw: { 0: 'x', 1: 'y', length: 2 } }) !== 'xy') {\n // IE 11 TP has a broken String.raw implementation\n overrideNative(String, 'raw', StringShims.raw);\n }\n defineProperties(String, StringShims);\n\n // Fast repeat, uses the `Exponentiation by squaring` algorithm.\n // Perf: http://jsperf.com/string-repeat2/2\n var stringRepeat = function repeat(s, times) {\n if (times < 1) { return ''; }\n if (times % 2) { return repeat(s, times - 1) + s; }\n var half = repeat(s, times / 2);\n return half + half;\n };\n var stringMaxLength = Infinity;\n\n var StringPrototypeShims = {\n repeat: function repeat(times) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var numTimes = ES.ToInteger(times);\n if (numTimes < 0 || numTimes >= stringMaxLength) {\n throw new RangeError('repeat count must be less than infinity and not overflow maximum string size');\n }\n return stringRepeat(thisStr, numTimes);\n },\n\n startsWith: function startsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"startsWith\" with a regex');\n }\n var searchStr = ES.ToString(searchString);\n var position;\n if (arguments.length > 1) {\n position = arguments[1];\n }\n var start = _max(ES.ToInteger(position), 0);\n return _strSlice(S, start, start + searchStr.length) === searchStr;\n },\n\n endsWith: function endsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"endsWith\" with a regex');\n }\n var searchStr = ES.ToString(searchString);\n var len = S.length;\n var endPosition;\n if (arguments.length > 1) {\n endPosition = arguments[1];\n }\n var pos = typeof endPosition === 'undefined' ? len : ES.ToInteger(endPosition);\n var end = _min(_max(pos, 0), len);\n return _strSlice(S, end - searchStr.length, end) === searchStr;\n },\n\n includes: function includes(searchString) {\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('\"includes\" does not accept a RegExp');\n }\n var searchStr = ES.ToString(searchString);\n var position;\n if (arguments.length > 1) {\n position = arguments[1];\n }\n // Somehow this trick makes method 100% compat with the spec.\n return _indexOf(this, searchStr, position) !== -1;\n },\n\n codePointAt: function codePointAt(pos) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var position = ES.ToInteger(pos);\n var length = thisStr.length;\n if (position >= 0 && position < length) {\n var first = thisStr.charCodeAt(position);\n var isEnd = position + 1 === length;\n if (first < 0xD800 || first > 0xDBFF || isEnd) { return first; }\n var second = thisStr.charCodeAt(position + 1);\n if (second < 0xDC00 || second > 0xDFFF) { return first; }\n return ((first - 0xD800) * 1024) + (second - 0xDC00) + 0x10000;\n }\n }\n };\n if (String.prototype.includes && 'a'.includes('a', Infinity) !== false) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n\n if (String.prototype.startsWith && String.prototype.endsWith) {\n var startsWithRejectsRegex = throwsError(function () {\n /* throws if spec-compliant */\n return '/a/'.startsWith(/a/);\n });\n var startsWithHandlesInfinity = valueOrFalseIfThrows(function () {\n return 'abc'.startsWith('a', Infinity) === false;\n });\n if (!startsWithRejectsRegex || !startsWithHandlesInfinity) {\n // Firefox (< 37?) and IE 11 TP have a noncompliant startsWith implementation\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n }\n if (hasSymbols) {\n var startsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.startsWith(re);\n });\n if (!startsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n }\n var endsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.endsWith(re);\n });\n if (!endsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n var includesSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.includes(re);\n });\n if (!includesSupportsSymbolMatch) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n }\n\n defineProperties(String.prototype, StringPrototypeShims);\n\n // whitespace from: http://es5.github.io/#x15.5.4.20\n // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\n var ws = [\n '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n '\\u2029\\uFEFF'\n ].join('');\n var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\n var trimShim = function trim() {\n return ES.ToString(ES.RequireObjectCoercible(this)).replace(trimRegexp, '');\n };\n var nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\n var nonWSregex = new RegExp('[' + nonWS + ']', 'g');\n var isBadHexRegex = /^[-+]0x[0-9a-f]+$/i;\n var hasStringTrimBug = nonWS.trim().length !== nonWS.length;\n defineProperty(String.prototype, 'trim', trimShim, hasStringTrimBug);\n\n // Given an argument x, it will return an IteratorResult object,\n // with value set to x and done to false.\n // Given no arguments, it will return an iterator completion object.\n var iteratorResult = function (x) {\n return { value: x, done: arguments.length === 0 };\n };\n\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-string.prototype-@@iterator\n var StringIterator = function (s) {\n ES.RequireObjectCoercible(s);\n this._s = ES.ToString(s);\n this._i = 0;\n };\n StringIterator.prototype.next = function () {\n var s = this._s;\n var i = this._i;\n if (typeof s === 'undefined' || i >= s.length) {\n this._s = void 0;\n return iteratorResult();\n }\n var first = s.charCodeAt(i);\n var second, len;\n if (first < 0xD800 || first > 0xDBFF || (i + 1) === s.length) {\n len = 1;\n } else {\n second = s.charCodeAt(i + 1);\n len = (second < 0xDC00 || second > 0xDFFF) ? 1 : 2;\n }\n this._i = i + len;\n return iteratorResult(s.substr(i, len));\n };\n addIterator(StringIterator.prototype);\n addIterator(String.prototype, function () {\n return new StringIterator(this);\n });\n\n var ArrayShims = {\n from: function from(items) {\n var C = this;\n var mapFn;\n if (arguments.length > 1) {\n mapFn = arguments[1];\n }\n var mapping, T;\n if (typeof mapFn === 'undefined') {\n mapping = false;\n } else {\n if (!ES.IsCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n if (arguments.length > 2) {\n T = arguments[2];\n }\n mapping = true;\n }\n\n // Note that that Arrays will use ArrayIterator:\n // https://bugs.ecmascript.org/show_bug.cgi?id=2416\n var usingIterator = typeof (isArguments(items) || ES.GetMethod(items, $iterator$)) !== 'undefined';\n\n var length, result, i;\n if (usingIterator) {\n result = ES.IsConstructor(C) ? Object(new C()) : [];\n var iterator = ES.GetIterator(items);\n var next, nextValue;\n\n i = 0;\n while (true) {\n next = ES.IteratorStep(iterator);\n if (next === false) {\n break;\n }\n nextValue = next.value;\n try {\n if (mapping) {\n nextValue = typeof T === 'undefined' ? mapFn(nextValue, i) : _call(mapFn, T, nextValue, i);\n }\n result[i] = nextValue;\n } catch (e) {\n ES.IteratorClose(iterator, true);\n throw e;\n }\n i += 1;\n }\n length = i;\n } else {\n var arrayLike = ES.ToObject(items);\n length = ES.ToLength(arrayLike.length);\n result = ES.IsConstructor(C) ? Object(new C(length)) : new Array(length);\n var value;\n for (i = 0; i < length; ++i) {\n value = arrayLike[i];\n if (mapping) {\n value = typeof T === 'undefined' ? mapFn(value, i) : _call(mapFn, T, value, i);\n }\n createDataPropertyOrThrow(result, i, value);\n }\n }\n\n result.length = length;\n return result;\n },\n\n of: function of() {\n var len = arguments.length;\n var C = this;\n var A = isArray(C) || !ES.IsCallable(C) ? new Array(len) : ES.Construct(C, [len]);\n for (var k = 0; k < len; ++k) {\n createDataPropertyOrThrow(A, k, arguments[k]);\n }\n A.length = len;\n return A;\n }\n };\n defineProperties(Array, ArrayShims);\n addDefaultSpecies(Array);\n\n // Our ArrayIterator is private; see\n // https://github.com/paulmillr/es6-shim/issues/252\n ArrayIterator = function (array, kind) {\n this.i = 0;\n this.array = array;\n this.kind = kind;\n };\n\n defineProperties(ArrayIterator.prototype, {\n next: function () {\n var i = this.i;\n var array = this.array;\n if (!(this instanceof ArrayIterator)) {\n throw new TypeError('Not an ArrayIterator');\n }\n if (typeof array !== 'undefined') {\n var len = ES.ToLength(array.length);\n for (; i < len; i++) {\n var kind = this.kind;\n var retval;\n if (kind === 'key') {\n retval = i;\n } else if (kind === 'value') {\n retval = array[i];\n } else if (kind === 'entry') {\n retval = [i, array[i]];\n }\n this.i = i + 1;\n return iteratorResult(retval);\n }\n }\n this.array = void 0;\n return iteratorResult();\n }\n });\n addIterator(ArrayIterator.prototype);\n\n /*\n var orderKeys = function orderKeys(a, b) {\n var aNumeric = String(ES.ToInteger(a)) === a;\n var bNumeric = String(ES.ToInteger(b)) === b;\n if (aNumeric && bNumeric) {\n return b - a;\n } else if (aNumeric && !bNumeric) {\n return -1;\n } else if (!aNumeric && bNumeric) {\n return 1;\n } else {\n return a.localeCompare(b);\n }\n };\n\n var getAllKeys = function getAllKeys(object) {\n var ownKeys = [];\n var keys = [];\n\n for (var key in object) {\n _push(_hasOwnProperty(object, key) ? ownKeys : keys, key);\n }\n _sort(ownKeys, orderKeys);\n _sort(keys, orderKeys);\n\n return _concat(ownKeys, keys);\n };\n */\n\n // note: this is positioned here because it depends on ArrayIterator\n var arrayOfSupportsSubclassing = Array.of === ArrayShims.of || (function () {\n // Detects a bug in Webkit nightly r181886\n var Foo = function Foo(len) { this.length = len; };\n Foo.prototype = [];\n var fooArr = Array.of.apply(Foo, [1, 2]);\n return fooArr instanceof Foo && fooArr.length === 2;\n }());\n if (!arrayOfSupportsSubclassing) {\n overrideNative(Array, 'of', ArrayShims.of);\n }\n\n var ArrayPrototypeShims = {\n copyWithin: function copyWithin(target, start) {\n var o = ES.ToObject(this);\n var len = ES.ToLength(o.length);\n var relativeTarget = ES.ToInteger(target);\n var relativeStart = ES.ToInteger(start);\n var to = relativeTarget < 0 ? _max(len + relativeTarget, 0) : _min(relativeTarget, len);\n var from = relativeStart < 0 ? _max(len + relativeStart, 0) : _min(relativeStart, len);\n var end;\n if (arguments.length > 2) {\n end = arguments[2];\n }\n var relativeEnd = typeof end === 'undefined' ? len : ES.ToInteger(end);\n var finalItem = relativeEnd < 0 ? _max(len + relativeEnd, 0) : _min(relativeEnd, len);\n var count = _min(finalItem - from, len - to);\n var direction = 1;\n if (from < to && to < (from + count)) {\n direction = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count > 0) {\n if (from in o) {\n o[to] = o[from];\n } else {\n delete o[to];\n }\n from += direction;\n to += direction;\n count -= 1;\n }\n return o;\n },\n\n fill: function fill(value) {\n var start;\n if (arguments.length > 1) {\n start = arguments[1];\n }\n var end;\n if (arguments.length > 2) {\n end = arguments[2];\n }\n var O = ES.ToObject(this);\n var len = ES.ToLength(O.length);\n start = ES.ToInteger(typeof start === 'undefined' ? 0 : start);\n end = ES.ToInteger(typeof end === 'undefined' ? len : end);\n\n var relativeStart = start < 0 ? _max(len + start, 0) : _min(start, len);\n var relativeEnd = end < 0 ? len + end : end;\n\n for (var i = relativeStart; i < len && i < relativeEnd; ++i) {\n O[i] = value;\n }\n return O;\n },\n\n find: function find(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#find: predicate must be a function');\n }\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n for (var i = 0, value; i < length; i++) {\n value = list[i];\n if (thisArg) {\n if (_call(predicate, thisArg, value, i, list)) {\n return value;\n }\n } else if (predicate(value, i, list)) {\n return value;\n }\n }\n },\n\n findIndex: function findIndex(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#findIndex: predicate must be a function');\n }\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n for (var i = 0; i < length; i++) {\n if (thisArg) {\n if (_call(predicate, thisArg, list[i], i, list)) {\n return i;\n }\n } else if (predicate(list[i], i, list)) {\n return i;\n }\n }\n return -1;\n },\n\n keys: function keys() {\n return new ArrayIterator(this, 'key');\n },\n\n values: function values() {\n return new ArrayIterator(this, 'value');\n },\n\n entries: function entries() {\n return new ArrayIterator(this, 'entry');\n }\n };\n // Safari 7.1 defines Array#keys and Array#entries natively,\n // but the resulting ArrayIterator objects don't have a \"next\" method.\n if (Array.prototype.keys && !ES.IsCallable([1].keys().next)) {\n delete Array.prototype.keys;\n }\n if (Array.prototype.entries && !ES.IsCallable([1].entries().next)) {\n delete Array.prototype.entries;\n }\n\n // Chrome 38 defines Array#keys and Array#entries, and Array#@@iterator, but not Array#values\n if (Array.prototype.keys && Array.prototype.entries && !Array.prototype.values && Array.prototype[$iterator$]) {\n defineProperties(Array.prototype, {\n values: Array.prototype[$iterator$]\n });\n if (Type.symbol(Symbol.unscopables)) {\n Array.prototype[Symbol.unscopables].values = true;\n }\n }\n // Chrome 40 defines Array#values with the incorrect name, although Array#{keys,entries} have the correct name\n if (functionsHaveNames && Array.prototype.values && Array.prototype.values.name !== 'values') {\n var originalArrayPrototypeValues = Array.prototype.values;\n overrideNative(Array.prototype, 'values', function values() { return ES.Call(originalArrayPrototypeValues, this, arguments); });\n defineProperty(Array.prototype, $iterator$, Array.prototype.values, true);\n }\n defineProperties(Array.prototype, ArrayPrototypeShims);\n\n if (1 / [true].indexOf(true, -0) < 0) {\n // indexOf when given a position arg of -0 should return +0.\n // https://github.com/tc39/ecma262/pull/316\n defineProperty(Array.prototype, 'indexOf', function indexOf(searchElement) {\n var value = _arrayIndexOfApply(this, arguments);\n if (value === 0 && (1 / value) < 0) {\n return 0;\n }\n return value;\n }, true);\n }\n\n addIterator(Array.prototype, function () { return this.values(); });\n // Chrome defines keys/values/entries on Array, but doesn't give us\n // any way to identify its iterator. So add our own shimmed field.\n if (Object.getPrototypeOf) {\n addIterator(Object.getPrototypeOf([].values()));\n }\n\n // note: this is positioned here because it relies on Array#entries\n var arrayFromSwallowsNegativeLengths = (function () {\n // Detects a Firefox bug in v32\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1063993\n return valueOrFalseIfThrows(function () {\n return Array.from({ length: -1 }).length === 0;\n });\n }());\n var arrayFromHandlesIterables = (function () {\n // Detects a bug in Webkit nightly r181886\n var arr = Array.from([0].entries());\n return arr.length === 1 && isArray(arr[0]) && arr[0][0] === 0 && arr[0][1] === 0;\n }());\n if (!arrayFromSwallowsNegativeLengths || !arrayFromHandlesIterables) {\n overrideNative(Array, 'from', ArrayShims.from);\n }\n var arrayFromHandlesUndefinedMapFunction = (function () {\n // Microsoft Edge v0.11 throws if the mapFn argument is *provided* but undefined,\n // but the spec doesn't care if it's provided or not - undefined doesn't throw.\n return valueOrFalseIfThrows(function () {\n return Array.from([0], void 0);\n });\n }());\n if (!arrayFromHandlesUndefinedMapFunction) {\n var origArrayFrom = Array.from;\n overrideNative(Array, 'from', function from(items) {\n if (arguments.length > 1 && typeof arguments[1] !== 'undefined') {\n return ES.Call(origArrayFrom, this, arguments);\n } else {\n return _call(origArrayFrom, this, items);\n }\n });\n }\n\n var int32sAsOne = -(Math.pow(2, 32) - 1);\n var toLengthsCorrectly = function (method, reversed) {\n var obj = { length: int32sAsOne };\n obj[reversed ? (obj.length >>> 0) - 1 : 0] = true;\n return valueOrFalseIfThrows(function () {\n _call(method, obj, function () {\n // note: in nonconforming browsers, this will be called\n // -1 >>> 0 times, which is 4294967295, so the throw matters.\n throw new RangeError('should not reach here');\n }, []);\n return true;\n });\n };\n if (!toLengthsCorrectly(Array.prototype.forEach)) {\n var originalForEach = Array.prototype.forEach;\n overrideNative(Array.prototype, 'forEach', function forEach(callbackFn) {\n return ES.Call(originalForEach, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.map)) {\n var originalMap = Array.prototype.map;\n overrideNative(Array.prototype, 'map', function map(callbackFn) {\n return ES.Call(originalMap, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.filter)) {\n var originalFilter = Array.prototype.filter;\n overrideNative(Array.prototype, 'filter', function filter(callbackFn) {\n return ES.Call(originalFilter, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.some)) {\n var originalSome = Array.prototype.some;\n overrideNative(Array.prototype, 'some', function some(callbackFn) {\n return ES.Call(originalSome, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.every)) {\n var originalEvery = Array.prototype.every;\n overrideNative(Array.prototype, 'every', function every(callbackFn) {\n return ES.Call(originalEvery, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.reduce)) {\n var originalReduce = Array.prototype.reduce;\n overrideNative(Array.prototype, 'reduce', function reduce(callbackFn) {\n return ES.Call(originalReduce, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.reduceRight, true)) {\n var originalReduceRight = Array.prototype.reduceRight;\n overrideNative(Array.prototype, 'reduceRight', function reduceRight(callbackFn) {\n return ES.Call(originalReduceRight, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n\n var lacksOctalSupport = Number('0o10') !== 8;\n var lacksBinarySupport = Number('0b10') !== 2;\n var trimsNonWhitespace = _some(nonWS, function (c) {\n return Number(c + 0 + c) === 0;\n });\n if (lacksOctalSupport || lacksBinarySupport || trimsNonWhitespace) {\n var OrigNumber = Number;\n var binaryRegex = /^0b[01]+$/i;\n var octalRegex = /^0o[0-7]+$/i;\n // Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, \"test\" is an own property of regexes. wtf.\n var isBinary = binaryRegex.test.bind(binaryRegex);\n var isOctal = octalRegex.test.bind(octalRegex);\n var toPrimitive = function (O) { // need to replace this with `es-to-primitive/es6`\n var result;\n if (typeof O.valueOf === 'function') {\n result = O.valueOf();\n if (Type.primitive(result)) {\n return result;\n }\n }\n if (typeof O.toString === 'function') {\n result = O.toString();\n if (Type.primitive(result)) {\n return result;\n }\n }\n throw new TypeError('No default value');\n };\n var hasNonWS = nonWSregex.test.bind(nonWSregex);\n var isBadHex = isBadHexRegex.test.bind(isBadHexRegex);\n var NumberShim = (function () {\n // this is wrapped in an IIFE because of IE 6-8's wacky scoping issues with named function expressions.\n var NumberShim = function Number(value) {\n var primValue;\n if (arguments.length > 0) {\n primValue = Type.primitive(value) ? value : toPrimitive(value, 'number');\n } else {\n primValue = 0;\n }\n if (typeof primValue === 'string') {\n primValue = ES.Call(trimShim, primValue);\n if (isBinary(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 2);\n } else if (isOctal(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 8);\n } else if (hasNonWS(primValue) || isBadHex(primValue)) {\n primValue = NaN;\n }\n }\n var receiver = this;\n var valueOfSucceeds = valueOrFalseIfThrows(function () {\n OrigNumber.prototype.valueOf.call(receiver);\n return true;\n });\n if (receiver instanceof NumberShim && !valueOfSucceeds) {\n return new OrigNumber(primValue);\n }\n return OrigNumber(primValue);\n };\n return NumberShim;\n }());\n wrapConstructor(OrigNumber, NumberShim, {});\n // this is necessary for ES3 browsers, where these properties are non-enumerable.\n defineProperties(NumberShim, {\n NaN: OrigNumber.NaN,\n MAX_VALUE: OrigNumber.MAX_VALUE,\n MIN_VALUE: OrigNumber.MIN_VALUE,\n NEGATIVE_INFINITY: OrigNumber.NEGATIVE_INFINITY,\n POSITIVE_INFINITY: OrigNumber.POSITIVE_INFINITY\n });\n /* globals Number: true */\n /* eslint-disable no-undef, no-global-assign */\n Number = NumberShim;\n Value.redefine(globals, 'Number', NumberShim);\n /* eslint-enable no-undef, no-global-assign */\n /* globals Number: false */\n }\n\n var maxSafeInteger = Math.pow(2, 53) - 1;\n defineProperties(Number, {\n MAX_SAFE_INTEGER: maxSafeInteger,\n MIN_SAFE_INTEGER: -maxSafeInteger,\n EPSILON: 2.220446049250313e-16,\n\n parseInt: globals.parseInt,\n parseFloat: globals.parseFloat,\n\n isFinite: numberIsFinite,\n\n isInteger: function isInteger(value) {\n return numberIsFinite(value) && ES.ToInteger(value) === value;\n },\n\n isSafeInteger: function isSafeInteger(value) {\n return Number.isInteger(value) && _abs(value) <= Number.MAX_SAFE_INTEGER;\n },\n\n isNaN: numberIsNaN\n });\n // Firefox 37 has a conforming Number.parseInt, but it's not === to the global parseInt (fixed in v40)\n defineProperty(Number, 'parseInt', globals.parseInt, Number.parseInt !== globals.parseInt);\n\n // Work around bugs in Array#find and Array#findIndex -- early\n // implementations skipped holes in sparse arrays. (Note that the\n // implementations of find/findIndex indirectly use shimmed\n // methods of Number, so this test has to happen down here.)\n /* eslint-disable no-sparse-arrays */\n if ([, 1].find(function () { return true; }) === 1) {\n overrideNative(Array.prototype, 'find', ArrayPrototypeShims.find);\n }\n if ([, 1].findIndex(function () { return true; }) !== 0) {\n overrideNative(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex);\n }\n /* eslint-enable no-sparse-arrays */\n\n var isEnumerableOn = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable);\n var ensureEnumerable = function ensureEnumerable(obj, prop) {\n if (supportsDescriptors && isEnumerableOn(obj, prop)) {\n Object.defineProperty(obj, prop, { enumerable: false });\n }\n };\n var sliceArgs = function sliceArgs() {\n // per https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n // and https://gist.github.com/WebReflection/4327762cb87a8c634a29\n var initial = Number(this);\n var len = arguments.length;\n var desiredArgCount = len - initial;\n var args = new Array(desiredArgCount < 0 ? 0 : desiredArgCount);\n for (var i = initial; i < len; ++i) {\n args[i - initial] = arguments[i];\n }\n return args;\n };\n var assignTo = function assignTo(source) {\n return function assignToSource(target, key) {\n target[key] = source[key];\n return target;\n };\n };\n var assignReducer = function (target, source) {\n var sourceKeys = keys(Object(source));\n var symbols;\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n symbols = _filter(Object.getOwnPropertySymbols(Object(source)), isEnumerableOn(source));\n }\n return _reduce(_concat(sourceKeys, symbols || []), assignTo(source), target);\n };\n\n var ObjectShims = {\n // 19.1.3.1\n assign: function (target, source) {\n var to = ES.ToObject(target, 'Cannot convert undefined or null to object');\n return _reduce(ES.Call(sliceArgs, 1, arguments), assignReducer, to);\n },\n\n // Added in WebKit in https://bugs.webkit.org/show_bug.cgi?id=143865\n is: function is(a, b) {\n return ES.SameValue(a, b);\n }\n };\n var assignHasPendingExceptions = Object.assign && Object.preventExtensions && (function () {\n // Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n // which is 72% slower than our shim, and Firefox 40's native implementation.\n var thrower = Object.preventExtensions({ 1: 2 });\n try {\n Object.assign(thrower, 'xy');\n } catch (e) {\n return thrower[1] === 'y';\n }\n }());\n if (assignHasPendingExceptions) {\n overrideNative(Object, 'assign', ObjectShims.assign);\n }\n defineProperties(Object, ObjectShims);\n\n if (supportsDescriptors) {\n var ES5ObjectShims = {\n // 19.1.3.9\n // shim from https://gist.github.com/WebReflection/5593554\n setPrototypeOf: (function (Object, magic) {\n var set;\n\n var checkArgs = function (O, proto) {\n if (!ES.TypeIsObject(O)) {\n throw new TypeError('cannot set prototype on a non-object');\n }\n if (!(proto === null || ES.TypeIsObject(proto))) {\n throw new TypeError('can only set prototype to an object or null' + proto);\n }\n };\n\n var setPrototypeOf = function (O, proto) {\n checkArgs(O, proto);\n _call(set, O, proto);\n return O;\n };\n\n try {\n // this works already in Firefox and Safari\n set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set;\n _call(set, {}, null);\n } catch (e) {\n if (Object.prototype !== {}[magic]) {\n // IE < 11 cannot be shimmed\n return;\n }\n // probably Chrome or some old Mobile stock browser\n set = function (proto) {\n this[magic] = proto;\n };\n // please note that this will **not** work\n // in those browsers that do not inherit\n // __proto__ by mistake from Object.prototype\n // in these cases we should probably throw an error\n // or at least be informed about the issue\n setPrototypeOf.polyfill = setPrototypeOf(\n setPrototypeOf({}, null),\n Object.prototype\n ) instanceof Object;\n // setPrototypeOf.polyfill === true means it works as meant\n // setPrototypeOf.polyfill === false means it's not 100% reliable\n // setPrototypeOf.polyfill === undefined\n // or\n // setPrototypeOf.polyfill == null means it's not a polyfill\n // which means it works as expected\n // we can even delete Object.prototype.__proto__;\n }\n return setPrototypeOf;\n }(Object, '__proto__'))\n };\n\n defineProperties(Object, ES5ObjectShims);\n }\n\n // Workaround bug in Opera 12 where setPrototypeOf(x, null) doesn't work,\n // but Object.create(null) does.\n if (Object.setPrototypeOf && Object.getPrototypeOf &&\n Object.getPrototypeOf(Object.setPrototypeOf({}, null)) !== null &&\n Object.getPrototypeOf(Object.create(null)) === null) {\n (function () {\n var FAKENULL = Object.create(null);\n var gpo = Object.getPrototypeOf;\n var spo = Object.setPrototypeOf;\n Object.getPrototypeOf = function (o) {\n var result = gpo(o);\n return result === FAKENULL ? null : result;\n };\n Object.setPrototypeOf = function (o, p) {\n var proto = p === null ? FAKENULL : p;\n return spo(o, proto);\n };\n Object.setPrototypeOf.polyfill = false;\n }());\n }\n\n var objectKeysAcceptsPrimitives = !throwsError(function () { return Object.keys('foo'); });\n if (!objectKeysAcceptsPrimitives) {\n var originalObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n return originalObjectKeys(ES.ToObject(value));\n });\n keys = Object.keys;\n }\n var objectKeysRejectsRegex = throwsError(function () { return Object.keys(/a/g); });\n if (objectKeysRejectsRegex) {\n var regexRejectingObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n if (Type.regex(value)) {\n var regexKeys = [];\n for (var k in value) {\n if (_hasOwnProperty(value, k)) {\n _push(regexKeys, k);\n }\n }\n return regexKeys;\n }\n return regexRejectingObjectKeys(value);\n });\n keys = Object.keys;\n }\n\n if (Object.getOwnPropertyNames) {\n var objectGOPNAcceptsPrimitives = !throwsError(function () { return Object.getOwnPropertyNames('foo'); });\n if (!objectGOPNAcceptsPrimitives) {\n var cachedWindowNames = typeof window === 'object' ? Object.getOwnPropertyNames(window) : [];\n var originalObjectGetOwnPropertyNames = Object.getOwnPropertyNames;\n overrideNative(Object, 'getOwnPropertyNames', function getOwnPropertyNames(value) {\n var val = ES.ToObject(value);\n if (_toString(val) === '[object Window]') {\n try {\n return originalObjectGetOwnPropertyNames(val);\n } catch (e) {\n // IE bug where layout engine calls userland gOPN for cross-domain `window` objects\n return _concat([], cachedWindowNames);\n }\n }\n return originalObjectGetOwnPropertyNames(val);\n });\n }\n }\n if (Object.getOwnPropertyDescriptor) {\n var objectGOPDAcceptsPrimitives = !throwsError(function () { return Object.getOwnPropertyDescriptor('foo', 'bar'); });\n if (!objectGOPDAcceptsPrimitives) {\n var originalObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n overrideNative(Object, 'getOwnPropertyDescriptor', function getOwnPropertyDescriptor(value, property) {\n return originalObjectGetOwnPropertyDescriptor(ES.ToObject(value), property);\n });\n }\n }\n if (Object.seal) {\n var objectSealAcceptsPrimitives = !throwsError(function () { return Object.seal('foo'); });\n if (!objectSealAcceptsPrimitives) {\n var originalObjectSeal = Object.seal;\n overrideNative(Object, 'seal', function seal(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectSeal(value);\n });\n }\n }\n if (Object.isSealed) {\n var objectIsSealedAcceptsPrimitives = !throwsError(function () { return Object.isSealed('foo'); });\n if (!objectIsSealedAcceptsPrimitives) {\n var originalObjectIsSealed = Object.isSealed;\n overrideNative(Object, 'isSealed', function isSealed(value) {\n if (!ES.TypeIsObject(value)) { return true; }\n return originalObjectIsSealed(value);\n });\n }\n }\n if (Object.freeze) {\n var objectFreezeAcceptsPrimitives = !throwsError(function () { return Object.freeze('foo'); });\n if (!objectFreezeAcceptsPrimitives) {\n var originalObjectFreeze = Object.freeze;\n overrideNative(Object, 'freeze', function freeze(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectFreeze(value);\n });\n }\n }\n if (Object.isFrozen) {\n var objectIsFrozenAcceptsPrimitives = !throwsError(function () { return Object.isFrozen('foo'); });\n if (!objectIsFrozenAcceptsPrimitives) {\n var originalObjectIsFrozen = Object.isFrozen;\n overrideNative(Object, 'isFrozen', function isFrozen(value) {\n if (!ES.TypeIsObject(value)) { return true; }\n return originalObjectIsFrozen(value);\n });\n }\n }\n if (Object.preventExtensions) {\n var objectPreventExtensionsAcceptsPrimitives = !throwsError(function () { return Object.preventExtensions('foo'); });\n if (!objectPreventExtensionsAcceptsPrimitives) {\n var originalObjectPreventExtensions = Object.preventExtensions;\n overrideNative(Object, 'preventExtensions', function preventExtensions(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectPreventExtensions(value);\n });\n }\n }\n if (Object.isExtensible) {\n var objectIsExtensibleAcceptsPrimitives = !throwsError(function () { return Object.isExtensible('foo'); });\n if (!objectIsExtensibleAcceptsPrimitives) {\n var originalObjectIsExtensible = Object.isExtensible;\n overrideNative(Object, 'isExtensible', function isExtensible(value) {\n if (!ES.TypeIsObject(value)) { return false; }\n return originalObjectIsExtensible(value);\n });\n }\n }\n if (Object.getPrototypeOf) {\n var objectGetProtoAcceptsPrimitives = !throwsError(function () { return Object.getPrototypeOf('foo'); });\n if (!objectGetProtoAcceptsPrimitives) {\n var originalGetProto = Object.getPrototypeOf;\n overrideNative(Object, 'getPrototypeOf', function getPrototypeOf(value) {\n return originalGetProto(ES.ToObject(value));\n });\n }\n }\n\n var hasFlags = supportsDescriptors && (function () {\n var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags');\n return desc && ES.IsCallable(desc.get);\n }());\n if (supportsDescriptors && !hasFlags) {\n var regExpFlagsGetter = function flags() {\n if (!ES.TypeIsObject(this)) {\n throw new TypeError('Method called on incompatible type: must be an object.');\n }\n var result = '';\n if (this.global) {\n result += 'g';\n }\n if (this.ignoreCase) {\n result += 'i';\n }\n if (this.multiline) {\n result += 'm';\n }\n if (this.unicode) {\n result += 'u';\n }\n if (this.sticky) {\n result += 'y';\n }\n return result;\n };\n\n Value.getter(RegExp.prototype, 'flags', regExpFlagsGetter);\n }\n\n var regExpSupportsFlagsWithRegex = supportsDescriptors && valueOrFalseIfThrows(function () {\n return String(new RegExp(/a/g, 'i')) === '/a/i';\n });\n var regExpNeedsToSupportSymbolMatch = hasSymbols && supportsDescriptors && (function () {\n // Edge 0.12 supports flags fully, but does not support Symbol.match\n var regex = /./;\n regex[Symbol.match] = false;\n return RegExp(regex) === regex;\n }());\n\n var regexToStringIsGeneric = valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({ source: 'abc' }) === '/abc/';\n });\n var regexToStringSupportsGenericFlags = regexToStringIsGeneric && valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({ source: 'a', flags: 'b' }) === '/a/b';\n });\n if (!regexToStringIsGeneric || !regexToStringSupportsGenericFlags) {\n var origRegExpToString = RegExp.prototype.toString;\n defineProperty(RegExp.prototype, 'toString', function toString() {\n var R = ES.RequireObjectCoercible(this);\n if (Type.regex(R)) {\n return _call(origRegExpToString, R);\n }\n var pattern = $String(R.source);\n var flags = $String(R.flags);\n return '/' + pattern + '/' + flags;\n }, true);\n Value.preserveToString(RegExp.prototype.toString, origRegExpToString);\n }\n\n if (supportsDescriptors && (!regExpSupportsFlagsWithRegex || regExpNeedsToSupportSymbolMatch)) {\n var flagsGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get;\n var sourceDesc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'source') || {};\n var legacySourceGetter = function () {\n // prior to it being a getter, it's own + nonconfigurable\n return this.source;\n };\n var sourceGetter = ES.IsCallable(sourceDesc.get) ? sourceDesc.get : legacySourceGetter;\n\n var OrigRegExp = RegExp;\n var RegExpShim = (function () {\n return function RegExp(pattern, flags) {\n var patternIsRegExp = ES.IsRegExp(pattern);\n var calledWithNew = this instanceof RegExp;\n if (!calledWithNew && patternIsRegExp && typeof flags === 'undefined' && pattern.constructor === RegExp) {\n return pattern;\n }\n\n var P = pattern;\n var F = flags;\n if (Type.regex(pattern)) {\n P = ES.Call(sourceGetter, pattern);\n F = typeof flags === 'undefined' ? ES.Call(flagsGetter, pattern) : flags;\n return new RegExp(P, F);\n } else if (patternIsRegExp) {\n P = pattern.source;\n F = typeof flags === 'undefined' ? pattern.flags : flags;\n }\n return new OrigRegExp(pattern, flags);\n };\n }());\n wrapConstructor(OrigRegExp, RegExpShim, {\n $input: true // Chrome < v39 & Opera < 26 have a nonstandard \"$input\" property\n });\n /* globals RegExp: true */\n /* eslint-disable no-undef, no-global-assign */\n RegExp = RegExpShim;\n Value.redefine(globals, 'RegExp', RegExpShim);\n /* eslint-enable no-undef, no-global-assign */\n /* globals RegExp: false */\n }\n\n if (supportsDescriptors) {\n var regexGlobals = {\n input: '$_',\n lastMatch: '$&',\n lastParen: '$+',\n leftContext: '$`',\n rightContext: '$\\''\n };\n _forEach(keys(regexGlobals), function (prop) {\n if (prop in RegExp && !(regexGlobals[prop] in RegExp)) {\n Value.getter(RegExp, regexGlobals[prop], function get() {\n return RegExp[prop];\n });\n }\n });\n }\n addDefaultSpecies(RegExp);\n\n var inverseEpsilon = 1 / Number.EPSILON;\n var roundTiesToEven = function roundTiesToEven(n) {\n // Even though this reduces down to `return n`, it takes advantage of built-in rounding.\n return (n + inverseEpsilon) - inverseEpsilon;\n };\n var BINARY_32_EPSILON = Math.pow(2, -23);\n var BINARY_32_MAX_VALUE = Math.pow(2, 127) * (2 - BINARY_32_EPSILON);\n var BINARY_32_MIN_VALUE = Math.pow(2, -126);\n var E = Math.E;\n var LOG2E = Math.LOG2E;\n var LOG10E = Math.LOG10E;\n var numberCLZ = Number.prototype.clz;\n delete Number.prototype.clz; // Safari 8 has Number#clz\n\n var MathShims = {\n acosh: function acosh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || value < 1) { return NaN; }\n if (x === 1) { return 0; }\n if (x === Infinity) { return x; }\n\n var xInvSquared = 1 / (x * x);\n if (x < 2) {\n return _log1p(x - 1 + (_sqrt(1 - xInvSquared) * x));\n }\n var halfX = x / 2;\n return _log1p(halfX + (_sqrt(1 - xInvSquared) * halfX) - 1) + (1 / LOG2E);\n },\n\n asinh: function asinh(value) {\n var x = Number(value);\n if (x === 0 || !globalIsFinite(x)) {\n return x;\n }\n\n var a = _abs(x);\n var aSquared = a * a;\n var s = _sign(x);\n if (a < 1) {\n return s * _log1p(a + (aSquared / (_sqrt(aSquared + 1) + 1)));\n }\n return s * (_log1p((a / 2) + (_sqrt(1 + (1 / aSquared)) * a / 2) - 1) + (1 / LOG2E));\n },\n\n atanh: function atanh(value) {\n var x = Number(value);\n\n if (x === 0) { return x; }\n if (x === -1) { return -Infinity; }\n if (x === 1) { return Infinity; }\n if (numberIsNaN(x) || x < -1 || x > 1) {\n return NaN;\n }\n\n var a = _abs(x);\n return _sign(x) * _log1p(2 * a / (1 - a)) / 2;\n },\n\n cbrt: function cbrt(value) {\n var x = Number(value);\n if (x === 0) { return x; }\n var negate = x < 0;\n var result;\n if (negate) { x = -x; }\n if (x === Infinity) {\n result = Infinity;\n } else {\n result = _exp(_log(x) / 3);\n // from http://en.wikipedia.org/wiki/Cube_root#Numerical_methods\n result = ((x / (result * result)) + (2 * result)) / 3;\n }\n return negate ? -result : result;\n },\n\n clz32: function clz32(value) {\n // See https://bugs.ecmascript.org/show_bug.cgi?id=2465\n var x = Number(value);\n var number = ES.ToUint32(x);\n if (number === 0) {\n return 32;\n }\n return numberCLZ ? ES.Call(numberCLZ, number) : 31 - _floor(_log(number + 0.5) * LOG2E);\n },\n\n cosh: function cosh(value) {\n var x = Number(value);\n if (x === 0) { return 1; } // +0 or -0\n if (numberIsNaN(x)) { return NaN; }\n if (!globalIsFinite(x)) { return Infinity; }\n\n var t = _exp(_abs(x) - 1);\n return (t + (1 / (t * E * E))) * (E / 2);\n },\n\n expm1: function expm1(value) {\n var x = Number(value);\n if (x === -Infinity) { return -1; }\n if (!globalIsFinite(x) || x === 0) { return x; }\n if (_abs(x) > 0.5) {\n return _exp(x) - 1;\n }\n // A more precise approximation using Taylor series expansion\n // from https://github.com/paulmillr/es6-shim/issues/314#issuecomment-70293986\n var t = x;\n var sum = 0;\n var n = 1;\n while (sum + t !== sum) {\n sum += t;\n n += 1;\n t *= x / n;\n }\n return sum;\n },\n\n hypot: function hypot(x, y) {\n var result = 0;\n var largest = 0;\n for (var i = 0; i < arguments.length; ++i) {\n var value = _abs(Number(arguments[i]));\n if (largest < value) {\n result *= (largest / value) * (largest / value);\n result += 1;\n largest = value;\n } else {\n result += value > 0 ? (value / largest) * (value / largest) : value;\n }\n }\n return largest === Infinity ? Infinity : largest * _sqrt(result);\n },\n\n log2: function log2(value) {\n return _log(value) * LOG2E;\n },\n\n log10: function log10(value) {\n return _log(value) * LOG10E;\n },\n\n log1p: _log1p,\n\n sign: _sign,\n\n sinh: function sinh(value) {\n var x = Number(value);\n if (!globalIsFinite(x) || x === 0) { return x; }\n\n var a = _abs(x);\n if (a < 1) {\n var u = Math.expm1(a);\n return _sign(x) * u * (1 + (1 / (u + 1))) / 2;\n }\n var t = _exp(a - 1);\n return _sign(x) * (t - (1 / (t * E * E))) * (E / 2);\n },\n\n tanh: function tanh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || x === 0) { return x; }\n // can exit early at +-20 as JS loses precision for true value at this integer\n if (x >= 20) { return 1; }\n if (x <= -20) { return -1; }\n\n return (Math.expm1(x) - Math.expm1(-x)) / (_exp(x) + _exp(-x));\n },\n\n trunc: function trunc(value) {\n var x = Number(value);\n return x < 0 ? -_floor(-x) : _floor(x);\n },\n\n imul: function imul(x, y) {\n // taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n var a = ES.ToUint32(x);\n var b = ES.ToUint32(y);\n var ah = (a >>> 16) & 0xffff;\n var al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff;\n var bl = b & 0xffff;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return (al * bl) + ((((ah * bl) + (al * bh)) << 16) >>> 0) | 0;\n },\n\n fround: function fround(x) {\n var v = Number(x);\n if (v === 0 || v === Infinity || v === -Infinity || numberIsNaN(v)) {\n return v;\n }\n var sign = _sign(v);\n var abs = _abs(v);\n if (abs < BINARY_32_MIN_VALUE) {\n return sign * roundTiesToEven(abs / BINARY_32_MIN_VALUE / BINARY_32_EPSILON) * BINARY_32_MIN_VALUE * BINARY_32_EPSILON;\n }\n // Veltkamp's splitting (?)\n var a = (1 + (BINARY_32_EPSILON / Number.EPSILON)) * abs;\n var result = a - (a - abs);\n if (result > BINARY_32_MAX_VALUE || numberIsNaN(result)) {\n return sign * Infinity;\n }\n return sign * result;\n }\n };\n\n var withinULPDistance = function withinULPDistance(result, expected, distance) {\n return _abs(1 - (result / expected)) / Number.EPSILON < (distance || 8);\n };\n\n defineProperties(Math, MathShims);\n // Chrome < 40 sinh returns ∞ for large numbers\n defineProperty(Math, 'sinh', MathShims.sinh, Math.sinh(710) === Infinity);\n // Chrome < 40 cosh returns ∞ for large numbers\n defineProperty(Math, 'cosh', MathShims.cosh, Math.cosh(710) === Infinity);\n // IE 11 TP has an imprecise log1p: reports Math.log1p(-1e-17) as 0\n defineProperty(Math, 'log1p', MathShims.log1p, Math.log1p(-1e-17) !== -1e-17);\n // IE 11 TP has an imprecise asinh: reports Math.asinh(-1e7) as not exactly equal to -Math.asinh(1e7)\n defineProperty(Math, 'asinh', MathShims.asinh, Math.asinh(-1e7) !== -Math.asinh(1e7));\n // Chrome < 54 asinh returns ∞ for large numbers and should not\n defineProperty(Math, 'asinh', MathShims.asinh, Math.asinh(1e+300) === Infinity);\n // Chrome < 54 atanh incorrectly returns 0 for large numbers\n defineProperty(Math, 'atanh', MathShims.atanh, Math.atanh(1e-300) === 0);\n // Chrome 40 has an imprecise Math.tanh with very small numbers\n defineProperty(Math, 'tanh', MathShims.tanh, Math.tanh(-2e-17) !== -2e-17);\n // Chrome 40 loses Math.acosh precision with high numbers\n defineProperty(Math, 'acosh', MathShims.acosh, Math.acosh(Number.MAX_VALUE) === Infinity);\n // Chrome < 54 has an inaccurate acosh for EPSILON deltas\n defineProperty(Math, 'acosh', MathShims.acosh, !withinULPDistance(Math.acosh(1 + Number.EPSILON), Math.sqrt(2 * Number.EPSILON)));\n // Firefox 38 on Windows\n defineProperty(Math, 'cbrt', MathShims.cbrt, !withinULPDistance(Math.cbrt(1e-300), 1e-100));\n // node 0.11 has an imprecise Math.sinh with very small numbers\n defineProperty(Math, 'sinh', MathShims.sinh, Math.sinh(-2e-17) !== -2e-17);\n // FF 35 on Linux reports 22025.465794806725 for Math.expm1(10)\n var expm1OfTen = Math.expm1(10);\n defineProperty(Math, 'expm1', MathShims.expm1, expm1OfTen > 22025.465794806719 || expm1OfTen < 22025.4657948067165168);\n\n var origMathRound = Math.round;\n // breaks in e.g. Safari 8, Internet Explorer 11, Opera 12\n var roundHandlesBoundaryConditions = Math.round(0.5 - (Number.EPSILON / 4)) === 0 &&\n Math.round(-0.5 + (Number.EPSILON / 3.99)) === 1;\n\n // When engines use Math.floor(x + 0.5) internally, Math.round can be buggy for large integers.\n // This behavior should be governed by \"round to nearest, ties to even mode\"\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-terms-and-definitions-number-type\n // These are the boundary cases where it breaks.\n var smallestPositiveNumberWhereRoundBreaks = inverseEpsilon + 1;\n var largestPositiveNumberWhereRoundBreaks = (2 * inverseEpsilon) - 1;\n var roundDoesNotIncreaseIntegers = [\n smallestPositiveNumberWhereRoundBreaks,\n largestPositiveNumberWhereRoundBreaks\n ].every(function (num) {\n return Math.round(num) === num;\n });\n defineProperty(Math, 'round', function round(x) {\n var floor = _floor(x);\n var ceil = floor === -1 ? -0 : floor + 1;\n return x - floor < 0.5 ? floor : ceil;\n }, !roundHandlesBoundaryConditions || !roundDoesNotIncreaseIntegers);\n Value.preserveToString(Math.round, origMathRound);\n\n var origImul = Math.imul;\n if (Math.imul(0xffffffff, 5) !== -5) {\n // Safari 6.1, at least, reports \"0\" for this value\n Math.imul = MathShims.imul;\n Value.preserveToString(Math.imul, origImul);\n }\n if (Math.imul.length !== 2) {\n // Safari 8.0.4 has a length of 1\n // fixed in https://bugs.webkit.org/show_bug.cgi?id=143658\n overrideNative(Math, 'imul', function imul(x, y) {\n return ES.Call(origImul, Math, arguments);\n });\n }\n\n // Promises\n // Simplest possible implementation; use a 3rd-party library if you\n // want the best possible speed and/or long stack traces.\n var PromiseShim = (function () {\n var setTimeout = globals.setTimeout;\n // some environments don't have setTimeout - no way to shim here.\n if (typeof setTimeout !== 'function' && typeof setTimeout !== 'object') { return; }\n\n ES.IsPromise = function (promise) {\n if (!ES.TypeIsObject(promise)) {\n return false;\n }\n if (typeof promise._promise === 'undefined') {\n return false; // uninitialized, or missing our hidden field.\n }\n return true;\n };\n\n // \"PromiseCapability\" in the spec is what most promise implementations\n // call a \"deferred\".\n var PromiseCapability = function (C) {\n if (!ES.IsConstructor(C)) {\n throw new TypeError('Bad promise constructor');\n }\n var capability = this;\n var resolver = function (resolve, reject) {\n if (capability.resolve !== void 0 || capability.reject !== void 0) {\n throw new TypeError('Bad Promise implementation!');\n }\n capability.resolve = resolve;\n capability.reject = reject;\n };\n // Initialize fields to inform optimizers about the object shape.\n capability.resolve = void 0;\n capability.reject = void 0;\n capability.promise = new C(resolver);\n if (!(ES.IsCallable(capability.resolve) && ES.IsCallable(capability.reject))) {\n throw new TypeError('Bad promise constructor');\n }\n };\n\n // find an appropriate setImmediate-alike\n var makeZeroTimeout;\n /*global window */\n if (typeof window !== 'undefined' && ES.IsCallable(window.postMessage)) {\n makeZeroTimeout = function () {\n // from http://dbaron.org/log/20100309-faster-timeouts\n var timeouts = [];\n var messageName = 'zero-timeout-message';\n var setZeroTimeout = function (fn) {\n _push(timeouts, fn);\n window.postMessage(messageName, '*');\n };\n var handleMessage = function (event) {\n if (event.source === window && event.data === messageName) {\n event.stopPropagation();\n if (timeouts.length === 0) { return; }\n var fn = _shift(timeouts);\n fn();\n }\n };\n window.addEventListener('message', handleMessage, true);\n return setZeroTimeout;\n };\n }\n var makePromiseAsap = function () {\n // An efficient task-scheduler based on a pre-existing Promise\n // implementation, which we can use even if we override the\n // global Promise below (in order to workaround bugs)\n // https://github.com/Raynos/observ-hash/issues/2#issuecomment-35857671\n var P = globals.Promise;\n var pr = P && P.resolve && P.resolve();\n return pr && function (task) {\n return pr.then(task);\n };\n };\n /*global process */\n var enqueue = ES.IsCallable(globals.setImmediate) ?\n globals.setImmediate :\n typeof process === 'object' && process.nextTick ? process.nextTick : makePromiseAsap() ||\n (ES.IsCallable(makeZeroTimeout) ? makeZeroTimeout() : function (task) { setTimeout(task, 0); }); // fallback\n\n // Constants for Promise implementation\n var PROMISE_IDENTITY = function (x) { return x; };\n var PROMISE_THROWER = function (e) { throw e; };\n var PROMISE_PENDING = 0;\n var PROMISE_FULFILLED = 1;\n var PROMISE_REJECTED = 2;\n // We store fulfill/reject handlers and capabilities in a single array.\n var PROMISE_FULFILL_OFFSET = 0;\n var PROMISE_REJECT_OFFSET = 1;\n var PROMISE_CAPABILITY_OFFSET = 2;\n // This is used in an optimization for chaining promises via then.\n var PROMISE_FAKE_CAPABILITY = {};\n\n var enqueuePromiseReactionJob = function (handler, capability, argument) {\n enqueue(function () {\n promiseReactionJob(handler, capability, argument);\n });\n };\n\n var promiseReactionJob = function (handler, promiseCapability, argument) {\n var handlerResult, f;\n if (promiseCapability === PROMISE_FAKE_CAPABILITY) {\n // Fast case, when we don't actually need to chain through to a\n // (real) promiseCapability.\n return handler(argument);\n }\n try {\n handlerResult = handler(argument);\n f = promiseCapability.resolve;\n } catch (e) {\n handlerResult = e;\n f = promiseCapability.reject;\n }\n f(handlerResult);\n };\n\n var fulfillPromise = function (promise, value) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n if (length > 0) {\n enqueuePromiseReactionJob(\n _promise.fulfillReactionHandler0,\n _promise.reactionCapability0,\n value\n );\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(\n _promise[idx + PROMISE_FULFILL_OFFSET],\n _promise[idx + PROMISE_CAPABILITY_OFFSET],\n value\n );\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n _promise.result = value;\n _promise.state = PROMISE_FULFILLED;\n _promise.reactionLength = 0;\n };\n\n var rejectPromise = function (promise, reason) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n if (length > 0) {\n enqueuePromiseReactionJob(\n _promise.rejectReactionHandler0,\n _promise.reactionCapability0,\n reason\n );\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(\n _promise[idx + PROMISE_REJECT_OFFSET],\n _promise[idx + PROMISE_CAPABILITY_OFFSET],\n reason\n );\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n _promise.result = reason;\n _promise.state = PROMISE_REJECTED;\n _promise.reactionLength = 0;\n };\n\n var createResolvingFunctions = function (promise) {\n var alreadyResolved = false;\n var resolve = function (resolution) {\n var then;\n if (alreadyResolved) { return; }\n alreadyResolved = true;\n if (resolution === promise) {\n return rejectPromise(promise, new TypeError('Self resolution'));\n }\n if (!ES.TypeIsObject(resolution)) {\n return fulfillPromise(promise, resolution);\n }\n try {\n then = resolution.then;\n } catch (e) {\n return rejectPromise(promise, e);\n }\n if (!ES.IsCallable(then)) {\n return fulfillPromise(promise, resolution);\n }\n enqueue(function () {\n promiseResolveThenableJob(promise, resolution, then);\n });\n };\n var reject = function (reason) {\n if (alreadyResolved) { return; }\n alreadyResolved = true;\n return rejectPromise(promise, reason);\n };\n return { resolve: resolve, reject: reject };\n };\n\n var optimizedThen = function (then, thenable, resolve, reject) {\n // Optimization: since we discard the result, we can pass our\n // own then implementation a special hint to let it know it\n // doesn't have to create it. (The PROMISE_FAKE_CAPABILITY\n // object is local to this implementation and unforgeable outside.)\n if (then === Promise$prototype$then) {\n _call(then, thenable, resolve, reject, PROMISE_FAKE_CAPABILITY);\n } else {\n _call(then, thenable, resolve, reject);\n }\n };\n var promiseResolveThenableJob = function (promise, thenable, then) {\n var resolvingFunctions = createResolvingFunctions(promise);\n var resolve = resolvingFunctions.resolve;\n var reject = resolvingFunctions.reject;\n try {\n optimizedThen(then, thenable, resolve, reject);\n } catch (e) {\n reject(e);\n }\n };\n\n var Promise$prototype, Promise$prototype$then;\n var Promise = (function () {\n var PromiseShim = function Promise(resolver) {\n if (!(this instanceof PromiseShim)) {\n throw new TypeError('Constructor Promise requires \"new\"');\n }\n if (this && this._promise) {\n throw new TypeError('Bad construction');\n }\n // see https://bugs.ecmascript.org/show_bug.cgi?id=2482\n if (!ES.IsCallable(resolver)) {\n throw new TypeError('not a valid resolver');\n }\n var promise = emulateES6construct(this, PromiseShim, Promise$prototype, {\n _promise: {\n result: void 0,\n state: PROMISE_PENDING,\n // The first member of the \"reactions\" array is inlined here,\n // since most promises only have one reaction.\n // We've also exploded the 'reaction' object to inline the\n // \"handler\" and \"capability\" fields, since both fulfill and\n // reject reactions share the same capability.\n reactionLength: 0,\n fulfillReactionHandler0: void 0,\n rejectReactionHandler0: void 0,\n reactionCapability0: void 0\n }\n });\n var resolvingFunctions = createResolvingFunctions(promise);\n var reject = resolvingFunctions.reject;\n try {\n resolver(resolvingFunctions.resolve, reject);\n } catch (e) {\n reject(e);\n }\n return promise;\n };\n return PromiseShim;\n }());\n Promise$prototype = Promise.prototype;\n\n var _promiseAllResolver = function (index, values, capability, remaining) {\n var alreadyCalled = false;\n return function (x) {\n if (alreadyCalled) { return; }\n alreadyCalled = true;\n values[index] = x;\n if ((--remaining.count) === 0) {\n var resolve = capability.resolve;\n resolve(values); // call w/ this===undefined\n }\n };\n };\n\n var performPromiseAll = function (iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var values = [];\n var remaining = { count: 1 };\n var next, nextValue;\n var index = 0;\n while (true) {\n try {\n next = ES.IteratorStep(it);\n if (next === false) {\n iteratorRecord.done = true;\n break;\n }\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n values[index] = void 0;\n var nextPromise = C.resolve(nextValue);\n var resolveElement = _promiseAllResolver(\n index,\n values,\n resultCapability,\n remaining\n );\n remaining.count += 1;\n optimizedThen(nextPromise.then, nextPromise, resolveElement, resultCapability.reject);\n index += 1;\n }\n if ((--remaining.count) === 0) {\n var resolve = resultCapability.resolve;\n resolve(values); // call w/ this===undefined\n }\n return resultCapability.promise;\n };\n\n var performPromiseRace = function (iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var next, nextValue, nextPromise;\n while (true) {\n try {\n next = ES.IteratorStep(it);\n if (next === false) {\n // NOTE: If iterable has no items, resulting promise will never\n // resolve; see:\n // https://github.com/domenic/promises-unwrapping/issues/75\n // https://bugs.ecmascript.org/show_bug.cgi?id=2515\n iteratorRecord.done = true;\n break;\n }\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n nextPromise = C.resolve(nextValue);\n optimizedThen(nextPromise.then, nextPromise, resultCapability.resolve, resultCapability.reject);\n }\n return resultCapability.promise;\n };\n\n defineProperties(Promise, {\n all: function all(iterable) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = { iterator: iterator, done: false };\n return performPromiseAll(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n\n race: function race(iterable) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = { iterator: iterator, done: false };\n return performPromiseRace(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n\n reject: function reject(reason) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n var capability = new PromiseCapability(C);\n var rejectFunc = capability.reject;\n rejectFunc(reason); // call with this===undefined\n return capability.promise;\n },\n\n resolve: function resolve(v) {\n // See https://esdiscuss.org/topic/fixing-promise-resolve for spec\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n if (ES.IsPromise(v)) {\n var constructor = v.constructor;\n if (constructor === C) {\n return v;\n }\n }\n var capability = new PromiseCapability(C);\n var resolveFunc = capability.resolve;\n resolveFunc(v); // call with this===undefined\n return capability.promise;\n }\n });\n\n defineProperties(Promise$prototype, {\n 'catch': function (onRejected) {\n return this.then(null, onRejected);\n },\n\n then: function then(onFulfilled, onRejected) {\n var promise = this;\n if (!ES.IsPromise(promise)) { throw new TypeError('not a promise'); }\n var C = ES.SpeciesConstructor(promise, Promise);\n var resultCapability;\n var returnValueIsIgnored = arguments.length > 2 && arguments[2] === PROMISE_FAKE_CAPABILITY;\n if (returnValueIsIgnored && C === Promise) {\n resultCapability = PROMISE_FAKE_CAPABILITY;\n } else {\n resultCapability = new PromiseCapability(C);\n }\n // PerformPromiseThen(promise, onFulfilled, onRejected, resultCapability)\n // Note that we've split the 'reaction' object into its two\n // components, \"capabilities\" and \"handler\"\n // \"capabilities\" is always equal to `resultCapability`\n var fulfillReactionHandler = ES.IsCallable(onFulfilled) ? onFulfilled : PROMISE_IDENTITY;\n var rejectReactionHandler = ES.IsCallable(onRejected) ? onRejected : PROMISE_THROWER;\n var _promise = promise._promise;\n var value;\n if (_promise.state === PROMISE_PENDING) {\n if (_promise.reactionLength === 0) {\n _promise.fulfillReactionHandler0 = fulfillReactionHandler;\n _promise.rejectReactionHandler0 = rejectReactionHandler;\n _promise.reactionCapability0 = resultCapability;\n } else {\n var idx = 3 * (_promise.reactionLength - 1);\n _promise[idx + PROMISE_FULFILL_OFFSET] = fulfillReactionHandler;\n _promise[idx + PROMISE_REJECT_OFFSET] = rejectReactionHandler;\n _promise[idx + PROMISE_CAPABILITY_OFFSET] = resultCapability;\n }\n _promise.reactionLength += 1;\n } else if (_promise.state === PROMISE_FULFILLED) {\n value = _promise.result;\n enqueuePromiseReactionJob(\n fulfillReactionHandler,\n resultCapability,\n value\n );\n } else if (_promise.state === PROMISE_REJECTED) {\n value = _promise.result;\n enqueuePromiseReactionJob(\n rejectReactionHandler,\n resultCapability,\n value\n );\n } else {\n throw new TypeError('unexpected Promise state');\n }\n return resultCapability.promise;\n }\n });\n // This helps the optimizer by ensuring that methods which take\n // capabilities aren't polymorphic.\n PROMISE_FAKE_CAPABILITY = new PromiseCapability(Promise);\n Promise$prototype$then = Promise$prototype.then;\n\n return Promise;\n }());\n\n // Chrome's native Promise has extra methods that it shouldn't have. Let's remove them.\n if (globals.Promise) {\n delete globals.Promise.accept;\n delete globals.Promise.defer;\n delete globals.Promise.prototype.chain;\n }\n\n if (typeof PromiseShim === 'function') {\n // export the Promise constructor.\n defineProperties(globals, { Promise: PromiseShim });\n // In Chrome 33 (and thereabouts) Promise is defined, but the\n // implementation is buggy in a number of ways. Let's check subclassing\n // support to see if we have a buggy implementation.\n var promiseSupportsSubclassing = supportsSubclassing(globals.Promise, function (S) {\n return S.resolve(42).then(function () {}) instanceof S;\n });\n var promiseIgnoresNonFunctionThenCallbacks = !throwsError(function () {\n return globals.Promise.reject(42).then(null, 5).then(null, noop);\n });\n var promiseRequiresObjectContext = throwsError(function () { return globals.Promise.call(3, noop); });\n // Promise.resolve() was errata'ed late in the ES6 process.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1170742\n // https://code.google.com/p/v8/issues/detail?id=4161\n // It serves as a proxy for a number of other bugs in early Promise\n // implementations.\n var promiseResolveBroken = (function (Promise) {\n var p = Promise.resolve(5);\n p.constructor = {};\n var p2 = Promise.resolve(p);\n try {\n p2.then(null, noop).then(null, noop); // avoid \"uncaught rejection\" warnings in console\n } catch (e) {\n return true; // v8 native Promises break here https://code.google.com/p/chromium/issues/detail?id=575314\n }\n return p === p2; // This *should* be false!\n }(globals.Promise));\n\n // Chrome 46 (probably older too) does not retrieve a thenable's .then synchronously\n var getsThenSynchronously = supportsDescriptors && (function () {\n var count = 0;\n // eslint-disable-next-line getter-return\n var thenable = Object.defineProperty({}, 'then', { get: function () { count += 1; } });\n Promise.resolve(thenable);\n return count === 1;\n }());\n\n var BadResolverPromise = function BadResolverPromise(executor) {\n var p = new Promise(executor);\n executor(3, function () {});\n this.then = p.then;\n this.constructor = BadResolverPromise;\n };\n BadResolverPromise.prototype = Promise.prototype;\n BadResolverPromise.all = Promise.all;\n // Chrome Canary 49 (probably older too) has some implementation bugs\n var hasBadResolverPromise = valueOrFalseIfThrows(function () {\n return !!BadResolverPromise.all([1, 2]);\n });\n\n if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks ||\n !promiseRequiresObjectContext || promiseResolveBroken ||\n !getsThenSynchronously || hasBadResolverPromise) {\n /* globals Promise: true */\n /* eslint-disable no-undef, no-global-assign */\n Promise = PromiseShim;\n /* eslint-enable no-undef, no-global-assign */\n /* globals Promise: false */\n overrideNative(globals, 'Promise', PromiseShim);\n }\n if (Promise.all.length !== 1) {\n var origAll = Promise.all;\n overrideNative(Promise, 'all', function all(iterable) {\n return ES.Call(origAll, this, arguments);\n });\n }\n if (Promise.race.length !== 1) {\n var origRace = Promise.race;\n overrideNative(Promise, 'race', function race(iterable) {\n return ES.Call(origRace, this, arguments);\n });\n }\n if (Promise.resolve.length !== 1) {\n var origResolve = Promise.resolve;\n overrideNative(Promise, 'resolve', function resolve(x) {\n return ES.Call(origResolve, this, arguments);\n });\n }\n if (Promise.reject.length !== 1) {\n var origReject = Promise.reject;\n overrideNative(Promise, 'reject', function reject(r) {\n return ES.Call(origReject, this, arguments);\n });\n }\n ensureEnumerable(Promise, 'all');\n ensureEnumerable(Promise, 'race');\n ensureEnumerable(Promise, 'resolve');\n ensureEnumerable(Promise, 'reject');\n addDefaultSpecies(Promise);\n }\n\n // Map and Set require a true ES5 environment\n // Their fast path also requires that the environment preserve\n // property insertion order, which is not guaranteed by the spec.\n var testOrder = function (a) {\n var b = keys(_reduce(a, function (o, k) {\n o[k] = true;\n return o;\n }, {}));\n return a.join(':') === b.join(':');\n };\n var preservesInsertionOrder = testOrder(['z', 'a', 'bb']);\n // some engines (eg, Chrome) only preserve insertion order for string keys\n var preservesNumericInsertionOrder = testOrder(['z', 1, 'a', '3', 2]);\n\n if (supportsDescriptors) {\n\n var fastkey = function fastkey(key, skipInsertionOrderCheck) {\n if (!skipInsertionOrderCheck && !preservesInsertionOrder) {\n return null;\n }\n if (isNullOrUndefined(key)) {\n return '^' + ES.ToString(key);\n } else if (typeof key === 'string') {\n return '$' + key;\n } else if (typeof key === 'number') {\n // note that -0 will get coerced to \"0\" when used as a property key\n if (!preservesNumericInsertionOrder) {\n return 'n' + key;\n }\n return key;\n } else if (typeof key === 'boolean') {\n return 'b' + key;\n }\n return null;\n };\n\n var emptyObject = function emptyObject() {\n // accomodate some older not-quite-ES5 browsers\n return Object.create ? Object.create(null) : {};\n };\n\n var addIterableToMap = function addIterableToMap(MapConstructor, map, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (entry) {\n if (!ES.TypeIsObject(entry)) {\n throw new TypeError('Iterator value ' + entry + ' is not an entry object');\n }\n map.set(entry[0], entry[1]);\n });\n } else if (iterable instanceof MapConstructor) {\n _call(MapConstructor.prototype.forEach, iterable, function (value, key) {\n map.set(key, value);\n });\n } else {\n var iter, adder;\n if (!isNullOrUndefined(iterable)) {\n adder = map.set;\n if (!ES.IsCallable(adder)) { throw new TypeError('bad map'); }\n iter = ES.GetIterator(iterable);\n }\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n if (next === false) { break; }\n var nextItem = next.value;\n try {\n if (!ES.TypeIsObject(nextItem)) {\n throw new TypeError('Iterator value ' + nextItem + ' is not an entry object');\n }\n _call(adder, map, nextItem[0], nextItem[1]);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n var addIterableToSet = function addIterableToSet(SetConstructor, set, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (value) {\n set.add(value);\n });\n } else if (iterable instanceof SetConstructor) {\n _call(SetConstructor.prototype.forEach, iterable, function (value) {\n set.add(value);\n });\n } else {\n var iter, adder;\n if (!isNullOrUndefined(iterable)) {\n adder = set.add;\n if (!ES.IsCallable(adder)) { throw new TypeError('bad set'); }\n iter = ES.GetIterator(iterable);\n }\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n if (next === false) { break; }\n var nextValue = next.value;\n try {\n _call(adder, set, nextValue);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n\n var collectionShims = {\n Map: (function () {\n\n var empty = {};\n\n var MapEntry = function MapEntry(key, value) {\n this.key = key;\n this.value = value;\n this.next = null;\n this.prev = null;\n };\n\n MapEntry.prototype.isRemoved = function isRemoved() {\n return this.key === empty;\n };\n\n var isMap = function isMap(map) {\n return !!map._es6map;\n };\n\n var requireMapSlot = function requireMapSlot(map, method) {\n if (!ES.TypeIsObject(map) || !isMap(map)) {\n throw new TypeError('Method Map.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(map));\n }\n };\n\n var MapIterator = function MapIterator(map, kind) {\n requireMapSlot(map, '[[MapIterator]]');\n this.head = map._head;\n this.i = this.head;\n this.kind = kind;\n };\n\n MapIterator.prototype = {\n isMapIterator: true,\n next: function next() {\n if (!this.isMapIterator) {\n throw new TypeError('Not a MapIterator');\n }\n var i = this.i;\n var kind = this.kind;\n var head = this.head;\n if (typeof this.i === 'undefined') {\n return iteratorResult();\n }\n while (i.isRemoved() && i !== head) {\n // back up off of removed entries\n i = i.prev;\n }\n // advance to next unreturned element.\n var result;\n while (i.next !== head) {\n i = i.next;\n if (!i.isRemoved()) {\n if (kind === 'key') {\n result = i.key;\n } else if (kind === 'value') {\n result = i.value;\n } else {\n result = [i.key, i.value];\n }\n this.i = i;\n return iteratorResult(result);\n }\n }\n // once the iterator is done, it is done forever.\n this.i = void 0;\n return iteratorResult();\n }\n };\n addIterator(MapIterator.prototype);\n\n var Map$prototype;\n var MapShim = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n if (this && this._es6map) {\n throw new TypeError('Bad construction');\n }\n var map = emulateES6construct(this, Map, Map$prototype, {\n _es6map: true,\n _head: null,\n _map: OrigMap ? new OrigMap() : null,\n _size: 0,\n _storage: emptyObject()\n });\n\n var head = new MapEntry(null, null);\n // circular doubly-linked list.\n /* eslint no-multi-assign: 1 */\n head.next = head.prev = head;\n map._head = head;\n\n // Optionally initialize map from iterable\n if (arguments.length > 0) {\n addIterableToMap(Map, map, arguments[0]);\n }\n return map;\n };\n Map$prototype = MapShim.prototype;\n\n Value.getter(Map$prototype, 'size', function () {\n if (typeof this._size === 'undefined') {\n throw new TypeError('size method called on incompatible Map');\n }\n return this._size;\n });\n\n defineProperties(Map$prototype, {\n get: function get(key) {\n requireMapSlot(this, 'get');\n var entry;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n entry = this._storage[fkey];\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n if (this._map) {\n // fast object key path\n entry = origMapGet.call(this._map, key);\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n var head = this._head;\n var i = head;\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return i.value;\n }\n }\n },\n\n has: function has(key) {\n requireMapSlot(this, 'has');\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n return typeof this._storage[fkey] !== 'undefined';\n }\n if (this._map) {\n // fast object key path\n return origMapHas.call(this._map, key);\n }\n var head = this._head;\n var i = head;\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return true;\n }\n }\n return false;\n },\n\n set: function set(key, value) {\n requireMapSlot(this, 'set');\n var head = this._head;\n var i = head;\n var entry;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] !== 'undefined') {\n this._storage[fkey].value = value;\n return this;\n } else {\n entry = this._storage[fkey] = new MapEntry(key, value); /* eslint no-multi-assign: 1 */\n i = head.prev;\n // fall through\n }\n } else if (this._map) {\n // fast object key path\n if (origMapHas.call(this._map, key)) {\n origMapGet.call(this._map, key).value = value;\n } else {\n entry = new MapEntry(key, value);\n origMapSet.call(this._map, key, entry);\n i = head.prev;\n // fall through\n }\n }\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.value = value;\n return this;\n }\n }\n entry = entry || new MapEntry(key, value);\n if (ES.SameValue(-0, key)) {\n entry.key = +0; // coerce -0 to +0 in entry\n }\n entry.next = this._head;\n entry.prev = this._head.prev;\n entry.prev.next = entry;\n entry.next.prev = entry;\n this._size += 1;\n return this;\n },\n\n 'delete': function (key) {\n requireMapSlot(this, 'delete');\n var head = this._head;\n var i = head;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] === 'undefined') {\n return false;\n }\n i = this._storage[fkey].prev;\n delete this._storage[fkey];\n // fall through\n } else if (this._map) {\n // fast object key path\n if (!origMapHas.call(this._map, key)) {\n return false;\n }\n i = origMapGet.call(this._map, key).prev;\n origMapDelete.call(this._map, key);\n // fall through\n }\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.key = empty;\n i.value = empty;\n i.prev.next = i.next;\n i.next.prev = i.prev;\n this._size -= 1;\n return true;\n }\n }\n return false;\n },\n\n clear: function clear() {\n /* eslint no-multi-assign: 1 */\n requireMapSlot(this, 'clear');\n this._map = OrigMap ? new OrigMap() : null;\n this._size = 0;\n this._storage = emptyObject();\n var head = this._head;\n var i = head;\n var p = i.next;\n while ((i = p) !== head) {\n i.key = empty;\n i.value = empty;\n p = i.next;\n i.next = i.prev = head;\n }\n head.next = head.prev = head;\n },\n\n keys: function keys() {\n requireMapSlot(this, 'keys');\n return new MapIterator(this, 'key');\n },\n\n values: function values() {\n requireMapSlot(this, 'values');\n return new MapIterator(this, 'value');\n },\n\n entries: function entries() {\n requireMapSlot(this, 'entries');\n return new MapIterator(this, 'key+value');\n },\n\n forEach: function forEach(callback) {\n requireMapSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var it = this.entries();\n for (var entry = it.next(); !entry.done; entry = it.next()) {\n if (context) {\n _call(callback, context, entry.value[1], entry.value[0], this);\n } else {\n callback(entry.value[1], entry.value[0], this);\n }\n }\n }\n });\n addIterator(Map$prototype, Map$prototype.entries);\n\n return MapShim;\n }()),\n\n Set: (function () {\n var isSet = function isSet(set) {\n return set._es6set && typeof set._storage !== 'undefined';\n };\n var requireSetSlot = function requireSetSlot(set, method) {\n if (!ES.TypeIsObject(set) || !isSet(set)) {\n // https://github.com/paulmillr/es6-shim/issues/176\n throw new TypeError('Set.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(set));\n }\n };\n\n // Creating a Map is expensive. To speed up the common case of\n // Sets containing only string or numeric keys, we use an object\n // as backing storage and lazily create a full Map only when\n // required.\n var Set$prototype;\n var SetShim = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n if (this && this._es6set) {\n throw new TypeError('Bad construction');\n }\n var set = emulateES6construct(this, Set, Set$prototype, {\n _es6set: true,\n '[[SetData]]': null,\n _storage: emptyObject()\n });\n if (!set._es6set) {\n throw new TypeError('bad set');\n }\n\n // Optionally initialize Set from iterable\n if (arguments.length > 0) {\n addIterableToSet(Set, set, arguments[0]);\n }\n return set;\n };\n Set$prototype = SetShim.prototype;\n\n var decodeKey = function (key) {\n var k = key;\n if (k === '^null') {\n return null;\n } else if (k === '^undefined') {\n return void 0;\n } else {\n var first = k.charAt(0);\n if (first === '$') {\n return _strSlice(k, 1);\n } else if (first === 'n') {\n return +_strSlice(k, 1);\n } else if (first === 'b') {\n return k === 'btrue';\n }\n }\n return +k;\n };\n // Switch from the object backing storage to a full Map.\n var ensureMap = function ensureMap(set) {\n if (!set['[[SetData]]']) {\n var m = new collectionShims.Map();\n set['[[SetData]]'] = m;\n _forEach(keys(set._storage), function (key) {\n var k = decodeKey(key);\n m.set(k, k);\n });\n set['[[SetData]]'] = m;\n }\n set._storage = null; // free old backing storage\n };\n\n Value.getter(SetShim.prototype, 'size', function () {\n requireSetSlot(this, 'size');\n if (this._storage) {\n return keys(this._storage).length;\n }\n ensureMap(this);\n return this['[[SetData]]'].size;\n });\n\n defineProperties(SetShim.prototype, {\n has: function has(key) {\n requireSetSlot(this, 'has');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n return !!this._storage[fkey];\n }\n ensureMap(this);\n return this['[[SetData]]'].has(key);\n },\n\n add: function add(key) {\n requireSetSlot(this, 'add');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n this._storage[fkey] = true;\n return this;\n }\n ensureMap(this);\n this['[[SetData]]'].set(key, key);\n return this;\n },\n\n 'delete': function (key) {\n requireSetSlot(this, 'delete');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n var hasFKey = _hasOwnProperty(this._storage, fkey);\n return (delete this._storage[fkey]) && hasFKey;\n }\n ensureMap(this);\n return this['[[SetData]]']['delete'](key);\n },\n\n clear: function clear() {\n requireSetSlot(this, 'clear');\n if (this._storage) {\n this._storage = emptyObject();\n }\n if (this['[[SetData]]']) {\n this['[[SetData]]'].clear();\n }\n },\n\n values: function values() {\n requireSetSlot(this, 'values');\n ensureMap(this);\n return new SetIterator(this['[[SetData]]'].values());\n },\n\n entries: function entries() {\n requireSetSlot(this, 'entries');\n ensureMap(this);\n return new SetIterator(this['[[SetData]]'].entries());\n },\n\n forEach: function forEach(callback) {\n requireSetSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var entireSet = this;\n ensureMap(entireSet);\n this['[[SetData]]'].forEach(function (value, key) {\n if (context) {\n _call(callback, context, key, key, entireSet);\n } else {\n callback(key, key, entireSet);\n }\n });\n }\n });\n defineProperty(SetShim.prototype, 'keys', SetShim.prototype.values, true);\n addIterator(SetShim.prototype, SetShim.prototype.values);\n\n var SetIterator = function SetIterator(it) {\n this.it = it;\n };\n SetIterator.prototype = {\n isSetIterator: true,\n next: function next() {\n if (!this.isSetIterator) {\n throw new TypeError('Not a SetIterator');\n }\n return this.it.next();\n }\n };\n addIterator(SetIterator.prototype);\n\n return SetShim;\n }())\n };\n\n var isGoogleTranslate = globals.Set && !Set.prototype['delete'] && Set.prototype.remove && Set.prototype.items && Set.prototype.map && Array.isArray(new Set().keys);\n if (isGoogleTranslate) {\n // special-case force removal of wildly invalid Set implementation in Google Translate iframes\n // see https://github.com/paulmillr/es6-shim/issues/438 / https://twitter.com/ljharb/status/849335573114363904\n globals.Set = collectionShims.Set;\n }\n if (globals.Map || globals.Set) {\n // Safari 8, for example, doesn't accept an iterable.\n var mapAcceptsArguments = valueOrFalseIfThrows(function () { return new Map([[1, 2]]).get(1) === 2; });\n if (!mapAcceptsArguments) {\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n var m = new OrigMap();\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n delete m.constructor;\n Object.setPrototypeOf(m, globals.Map.prototype);\n return m;\n };\n globals.Map.prototype = create(OrigMap.prototype);\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n var testMap = new Map();\n var mapUsesSameValueZero = (function () {\n // Chrome 38-42, node 0.11/0.12, iojs 1/2 also have a bug when the Map has a size > 4\n var m = new Map([[1, 0], [2, 0], [3, 0], [4, 0]]);\n m.set(-0, m);\n return m.get(0) === m && m.get(-0) === m && m.has(0) && m.has(-0);\n }());\n var mapSupportsChaining = testMap.set(1, 2) === testMap;\n if (!mapUsesSameValueZero || !mapSupportsChaining) {\n overrideNative(Map.prototype, 'set', function set(k, v) {\n _call(origMapSet, this, k === 0 ? 0 : k, v);\n return this;\n });\n }\n if (!mapUsesSameValueZero) {\n defineProperties(Map.prototype, {\n get: function get(k) {\n return _call(origMapGet, this, k === 0 ? 0 : k);\n },\n has: function has(k) {\n return _call(origMapHas, this, k === 0 ? 0 : k);\n }\n }, true);\n Value.preserveToString(Map.prototype.get, origMapGet);\n Value.preserveToString(Map.prototype.has, origMapHas);\n }\n var testSet = new Set();\n var setUsesSameValueZero = Set.prototype['delete'] && Set.prototype.add && Set.prototype.has && (function (s) {\n s['delete'](0);\n s.add(-0);\n return !s.has(0);\n }(testSet));\n var setSupportsChaining = testSet.add(1) === testSet;\n if (!setUsesSameValueZero || !setSupportsChaining) {\n var origSetAdd = Set.prototype.add;\n Set.prototype.add = function add(v) {\n _call(origSetAdd, this, v === 0 ? 0 : v);\n return this;\n };\n Value.preserveToString(Set.prototype.add, origSetAdd);\n }\n if (!setUsesSameValueZero) {\n var origSetHas = Set.prototype.has;\n Set.prototype.has = function has(v) {\n return _call(origSetHas, this, v === 0 ? 0 : v);\n };\n Value.preserveToString(Set.prototype.has, origSetHas);\n var origSetDel = Set.prototype['delete'];\n Set.prototype['delete'] = function SetDelete(v) {\n return _call(origSetDel, this, v === 0 ? 0 : v);\n };\n Value.preserveToString(Set.prototype['delete'], origSetDel);\n }\n var mapSupportsSubclassing = supportsSubclassing(globals.Map, function (M) {\n var m = new M([]);\n // Firefox 32 is ok with the instantiating the subclass but will\n // throw when the map is used.\n m.set(42, 42);\n return m instanceof M;\n });\n // without Object.setPrototypeOf, subclassing is not possible\n var mapFailsToSupportSubclassing = Object.setPrototypeOf && !mapSupportsSubclassing;\n var mapRequiresNew = (function () {\n try {\n return !(globals.Map() instanceof globals.Map);\n } catch (e) {\n return e instanceof TypeError;\n }\n }());\n if (globals.Map.length !== 0 || mapFailsToSupportSubclassing || !mapRequiresNew) {\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n var m = new OrigMap();\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n delete m.constructor;\n Object.setPrototypeOf(m, Map.prototype);\n return m;\n };\n globals.Map.prototype = OrigMap.prototype;\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n var setSupportsSubclassing = supportsSubclassing(globals.Set, function (S) {\n var s = new S([]);\n s.add(42, 42);\n return s instanceof S;\n });\n // without Object.setPrototypeOf, subclassing is not possible\n var setFailsToSupportSubclassing = Object.setPrototypeOf && !setSupportsSubclassing;\n var setRequiresNew = (function () {\n try {\n return !(globals.Set() instanceof globals.Set);\n } catch (e) {\n return e instanceof TypeError;\n }\n }());\n if (globals.Set.length !== 0 || setFailsToSupportSubclassing || !setRequiresNew) {\n var OrigSet = globals.Set;\n globals.Set = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n var s = new OrigSet();\n if (arguments.length > 0) {\n addIterableToSet(Set, s, arguments[0]);\n }\n delete s.constructor;\n Object.setPrototypeOf(s, Set.prototype);\n return s;\n };\n globals.Set.prototype = OrigSet.prototype;\n defineProperty(globals.Set.prototype, 'constructor', globals.Set, true);\n Value.preserveToString(globals.Set, OrigSet);\n }\n var newMap = new globals.Map();\n var mapIterationThrowsStopIterator = !valueOrFalseIfThrows(function () {\n return newMap.keys().next().done;\n });\n /*\n - In Firefox < 23, Map#size is a function.\n - In all current Firefox, Set#entries/keys/values & Map#clear do not exist\n - https://bugzilla.mozilla.org/show_bug.cgi?id=869996\n - In Firefox 24, Map and Set do not implement forEach\n - In Firefox 25 at least, Map and Set are callable without \"new\"\n */\n if (\n typeof globals.Map.prototype.clear !== 'function' ||\n new globals.Set().size !== 0 ||\n newMap.size !== 0 ||\n typeof globals.Map.prototype.keys !== 'function' ||\n typeof globals.Set.prototype.keys !== 'function' ||\n typeof globals.Map.prototype.forEach !== 'function' ||\n typeof globals.Set.prototype.forEach !== 'function' ||\n isCallableWithoutNew(globals.Map) ||\n isCallableWithoutNew(globals.Set) ||\n typeof newMap.keys().next !== 'function' || // Safari 8\n mapIterationThrowsStopIterator || // Firefox 25\n !mapSupportsSubclassing\n ) {\n defineProperties(globals, {\n Map: collectionShims.Map,\n Set: collectionShims.Set\n }, true);\n }\n\n if (globals.Set.prototype.keys !== globals.Set.prototype.values) {\n // Fixed in WebKit with https://bugs.webkit.org/show_bug.cgi?id=144190\n defineProperty(globals.Set.prototype, 'keys', globals.Set.prototype.values, true);\n }\n\n // Shim incomplete iterator implementations.\n addIterator(Object.getPrototypeOf((new globals.Map()).keys()));\n addIterator(Object.getPrototypeOf((new globals.Set()).keys()));\n\n if (functionsHaveNames && globals.Set.prototype.has.name !== 'has') {\n // Microsoft Edge v0.11.10074.0 is missing a name on Set#has\n var anonymousSetHas = globals.Set.prototype.has;\n overrideNative(globals.Set.prototype, 'has', function has(key) {\n return _call(anonymousSetHas, this, key);\n });\n }\n }\n defineProperties(globals, collectionShims);\n addDefaultSpecies(globals.Map);\n addDefaultSpecies(globals.Set);\n }\n\n var throwUnlessTargetIsObject = function throwUnlessTargetIsObject(target) {\n if (!ES.TypeIsObject(target)) {\n throw new TypeError('target must be an object');\n }\n };\n\n // Some Reflect methods are basically the same as\n // those on the Object global, except that a TypeError is thrown if\n // target isn't an object. As well as returning a boolean indicating\n // the success of the operation.\n var ReflectShims = {\n // Apply method in a functional form.\n apply: function apply() {\n return ES.Call(ES.Call, null, arguments);\n },\n\n // New operator in a functional form.\n construct: function construct(constructor, args) {\n if (!ES.IsConstructor(constructor)) {\n throw new TypeError('First argument must be a constructor.');\n }\n var newTarget = arguments.length > 2 ? arguments[2] : constructor;\n if (!ES.IsConstructor(newTarget)) {\n throw new TypeError('new.target must be a constructor.');\n }\n return ES.Construct(constructor, args, newTarget, 'internal');\n },\n\n // When deleting a non-existent or configurable property,\n // true is returned.\n // When attempting to delete a non-configurable property,\n // it will return false.\n deleteProperty: function deleteProperty(target, key) {\n throwUnlessTargetIsObject(target);\n if (supportsDescriptors) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (desc && !desc.configurable) {\n return false;\n }\n }\n\n // Will return true.\n return delete target[key];\n },\n\n has: function has(target, key) {\n throwUnlessTargetIsObject(target);\n return key in target;\n }\n };\n\n if (Object.getOwnPropertyNames) {\n Object.assign(ReflectShims, {\n // Basically the result of calling the internal [[OwnPropertyKeys]].\n // Concatenating propertyNames and propertySymbols should do the trick.\n // This should continue to work together with a Symbol shim\n // which overrides Object.getOwnPropertyNames and implements\n // Object.getOwnPropertySymbols.\n ownKeys: function ownKeys(target) {\n throwUnlessTargetIsObject(target);\n var keys = Object.getOwnPropertyNames(target);\n\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n _pushApply(keys, Object.getOwnPropertySymbols(target));\n }\n\n return keys;\n }\n });\n }\n\n var callAndCatchException = function ConvertExceptionToBoolean(func) {\n return !throwsError(func);\n };\n\n if (Object.preventExtensions) {\n Object.assign(ReflectShims, {\n isExtensible: function isExtensible(target) {\n throwUnlessTargetIsObject(target);\n return Object.isExtensible(target);\n },\n preventExtensions: function preventExtensions(target) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n return Object.preventExtensions(target);\n });\n }\n });\n }\n\n if (supportsDescriptors) {\n var internalGet = function get(target, key, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent === null) {\n return void 0;\n }\n\n return internalGet(parent, key, receiver);\n }\n\n if ('value' in desc) {\n return desc.value;\n }\n\n if (desc.get) {\n return ES.Call(desc.get, receiver);\n }\n\n return void 0;\n };\n\n var internalSet = function set(target, key, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent !== null) {\n return internalSet(parent, key, value, receiver);\n }\n\n desc = {\n value: void 0,\n writable: true,\n enumerable: true,\n configurable: true\n };\n }\n\n if ('value' in desc) {\n if (!desc.writable) {\n return false;\n }\n\n if (!ES.TypeIsObject(receiver)) {\n return false;\n }\n\n var existingDesc = Object.getOwnPropertyDescriptor(receiver, key);\n\n if (existingDesc) {\n return Reflect.defineProperty(receiver, key, {\n value: value\n });\n } else {\n return Reflect.defineProperty(receiver, key, {\n value: value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n\n if (desc.set) {\n _call(desc.set, receiver, value);\n return true;\n }\n\n return false;\n };\n\n Object.assign(ReflectShims, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n return Object.defineProperty(target, propertyKey, attributes);\n });\n },\n\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n throwUnlessTargetIsObject(target);\n return Object.getOwnPropertyDescriptor(target, propertyKey);\n },\n\n // Syntax in a functional form.\n get: function get(target, key) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 2 ? arguments[2] : target;\n\n return internalGet(target, key, receiver);\n },\n\n set: function set(target, key, value) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 3 ? arguments[3] : target;\n\n return internalSet(target, key, value, receiver);\n }\n });\n }\n\n if (Object.getPrototypeOf) {\n var objectDotGetPrototypeOf = Object.getPrototypeOf;\n ReflectShims.getPrototypeOf = function getPrototypeOf(target) {\n throwUnlessTargetIsObject(target);\n return objectDotGetPrototypeOf(target);\n };\n }\n\n if (Object.setPrototypeOf && ReflectShims.getPrototypeOf) {\n var willCreateCircularPrototype = function (object, lastProto) {\n var proto = lastProto;\n while (proto) {\n if (object === proto) {\n return true;\n }\n proto = ReflectShims.getPrototypeOf(proto);\n }\n return false;\n };\n\n Object.assign(ReflectShims, {\n // Sets the prototype of the given object.\n // Returns true on success, otherwise false.\n setPrototypeOf: function setPrototypeOf(object, proto) {\n throwUnlessTargetIsObject(object);\n if (proto !== null && !ES.TypeIsObject(proto)) {\n throw new TypeError('proto must be an object or null');\n }\n\n // If they already are the same, we're done.\n if (proto === Reflect.getPrototypeOf(object)) {\n return true;\n }\n\n // Cannot alter prototype if object not extensible.\n if (Reflect.isExtensible && !Reflect.isExtensible(object)) {\n return false;\n }\n\n // Ensure that we do not create a circular prototype chain.\n if (willCreateCircularPrototype(object, proto)) {\n return false;\n }\n\n Object.setPrototypeOf(object, proto);\n\n return true;\n }\n });\n }\n var defineOrOverrideReflectProperty = function (key, shim) {\n if (!ES.IsCallable(globals.Reflect[key])) {\n defineProperty(globals.Reflect, key, shim);\n } else {\n var acceptsPrimitives = valueOrFalseIfThrows(function () {\n globals.Reflect[key](1);\n globals.Reflect[key](NaN);\n globals.Reflect[key](true);\n return true;\n });\n if (acceptsPrimitives) {\n overrideNative(globals.Reflect, key, shim);\n }\n }\n };\n Object.keys(ReflectShims).forEach(function (key) {\n defineOrOverrideReflectProperty(key, ReflectShims[key]);\n });\n var originalReflectGetProto = globals.Reflect.getPrototypeOf;\n if (functionsHaveNames && originalReflectGetProto && originalReflectGetProto.name !== 'getPrototypeOf') {\n overrideNative(globals.Reflect, 'getPrototypeOf', function getPrototypeOf(target) {\n return _call(originalReflectGetProto, globals.Reflect, target);\n });\n }\n if (globals.Reflect.setPrototypeOf) {\n if (valueOrFalseIfThrows(function () {\n globals.Reflect.setPrototypeOf(1, {});\n return true;\n })) {\n overrideNative(globals.Reflect, 'setPrototypeOf', ReflectShims.setPrototypeOf);\n }\n }\n if (globals.Reflect.defineProperty) {\n if (!valueOrFalseIfThrows(function () {\n var basic = !globals.Reflect.defineProperty(1, 'test', { value: 1 });\n // \"extensible\" fails on Edge 0.12\n var extensible = typeof Object.preventExtensions !== 'function' || !globals.Reflect.defineProperty(Object.preventExtensions({}), 'test', {});\n return basic && extensible;\n })) {\n overrideNative(globals.Reflect, 'defineProperty', ReflectShims.defineProperty);\n }\n }\n if (globals.Reflect.construct) {\n if (!valueOrFalseIfThrows(function () {\n var F = function F() {};\n return globals.Reflect.construct(function () {}, [], F) instanceof F;\n })) {\n overrideNative(globals.Reflect, 'construct', ReflectShims.construct);\n }\n }\n\n if (String(new Date(NaN)) !== 'Invalid Date') {\n var dateToString = Date.prototype.toString;\n var shimmedDateToString = function toString() {\n var valueOf = +this;\n if (valueOf !== valueOf) {\n return 'Invalid Date';\n }\n return ES.Call(dateToString, this);\n };\n overrideNative(Date.prototype, 'toString', shimmedDateToString);\n }\n\n // Annex B HTML methods\n // http://www.ecma-international.org/ecma-262/6.0/#sec-additional-properties-of-the-string.prototype-object\n var stringHTMLshims = {\n anchor: function anchor(name) { return ES.CreateHTML(this, 'a', 'name', name); },\n big: function big() { return ES.CreateHTML(this, 'big', '', ''); },\n blink: function blink() { return ES.CreateHTML(this, 'blink', '', ''); },\n bold: function bold() { return ES.CreateHTML(this, 'b', '', ''); },\n fixed: function fixed() { return ES.CreateHTML(this, 'tt', '', ''); },\n fontcolor: function fontcolor(color) { return ES.CreateHTML(this, 'font', 'color', color); },\n fontsize: function fontsize(size) { return ES.CreateHTML(this, 'font', 'size', size); },\n italics: function italics() { return ES.CreateHTML(this, 'i', '', ''); },\n link: function link(url) { return ES.CreateHTML(this, 'a', 'href', url); },\n small: function small() { return ES.CreateHTML(this, 'small', '', ''); },\n strike: function strike() { return ES.CreateHTML(this, 'strike', '', ''); },\n sub: function sub() { return ES.CreateHTML(this, 'sub', '', ''); },\n sup: function sub() { return ES.CreateHTML(this, 'sup', '', ''); }\n };\n _forEach(Object.keys(stringHTMLshims), function (key) {\n var method = String.prototype[key];\n var shouldOverwrite = false;\n if (ES.IsCallable(method)) {\n var output = _call(method, '', ' \" ');\n var quotesCount = _concat([], output.match(/\"/g)).length;\n shouldOverwrite = output !== output.toLowerCase() || quotesCount > 2;\n } else {\n shouldOverwrite = true;\n }\n if (shouldOverwrite) {\n overrideNative(String.prototype, key, stringHTMLshims[key]);\n }\n });\n\n var JSONstringifiesSymbols = (function () {\n // Microsoft Edge v0.12 stringifies Symbols incorrectly\n if (!hasSymbols) { return false; } // Symbols are not supported\n var stringify = typeof JSON === 'object' && typeof JSON.stringify === 'function' ? JSON.stringify : null;\n if (!stringify) { return false; } // JSON.stringify is not supported\n if (typeof stringify(Symbol()) !== 'undefined') { return true; } // Symbols should become `undefined`\n if (stringify([Symbol()]) !== '[null]') { return true; } // Symbols in arrays should become `null`\n var obj = { a: Symbol() };\n obj[Symbol()] = true;\n if (stringify(obj) !== '{}') { return true; } // Symbol-valued keys *and* Symbol-valued properties should be omitted\n return false;\n }());\n var JSONstringifyAcceptsObjectSymbol = valueOrFalseIfThrows(function () {\n // Chrome 45 throws on stringifying object symbols\n if (!hasSymbols) { return true; } // Symbols are not supported\n return JSON.stringify(Object(Symbol())) === '{}' && JSON.stringify([Object(Symbol())]) === '[{}]';\n });\n if (JSONstringifiesSymbols || !JSONstringifyAcceptsObjectSymbol) {\n var origStringify = JSON.stringify;\n overrideNative(JSON, 'stringify', function stringify(value) {\n if (typeof value === 'symbol') { return; }\n var replacer;\n if (arguments.length > 1) {\n replacer = arguments[1];\n }\n var args = [value];\n if (!isArray(replacer)) {\n var replaceFn = ES.IsCallable(replacer) ? replacer : null;\n var wrappedReplacer = function (key, val) {\n var parsedValue = replaceFn ? _call(replaceFn, this, key, val) : val;\n if (typeof parsedValue !== 'symbol') {\n if (Type.symbol(parsedValue)) {\n return assignTo({})(parsedValue);\n } else {\n return parsedValue;\n }\n }\n };\n args.push(wrappedReplacer);\n } else {\n // create wrapped replacer that handles an array replacer?\n args.push(replacer);\n }\n if (arguments.length > 2) {\n args.push(arguments[2]);\n }\n return origStringify.apply(this, args);\n });\n }\n\n return globals;\n}));\n","// 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","const Lexer = require('./Lexer.js');\nconst Parser = require('./Parser.js');\nconst Renderer = require('./Renderer.js');\nconst TextRenderer = require('./TextRenderer.js');\nconst InlineLexer = require('./InlineLexer.js');\nconst Slugger = require('./Slugger.js');\nconst {\n merge,\n checkSanitizeDeprecation,\n escape\n} = require('./helpers.js');\nconst {\n getDefaults,\n changeDefaults,\n defaults\n} = require('./defaults.js');\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (callback || typeof opt === 'function') {\n if (!callback) {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n const highlight = opt.highlight;\n let tokens,\n pending,\n i = 0;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n pending = tokens.length;\n\n const done = function(err) {\n if (err) {\n opt.highlight = highlight;\n return callback(err);\n }\n\n let out;\n\n try {\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!pending) return done();\n\n for (; i < tokens.length; i++) {\n (function(token) {\n if (token.type !== 'code') {\n return --pending || done();\n }\n return highlight(token.text, token.lang, function(err, code) {\n if (err) return done(err);\n if (code == null || code === token.text) {\n return --pending || done();\n }\n token.text = code;\n token.escaped = true;\n --pending || done();\n });\n })(tokens[i]);\n }\n\n return;\n }\n try {\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n return Parser.parse(Lexer.lex(src, opt), opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if ((opt || marked.defaults).silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Expose\n */\n\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\n\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\n\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\n\nmarked.InlineLexer = InlineLexer;\nmarked.inlineLexer = InlineLexer.output;\n\nmarked.Slugger = Slugger;\n\nmarked.parse = marked;\n\nmodule.exports = marked;\n","const { defaults } = require('./defaults.js');\nconst { block } = require('./rules.js');\nconst {\n rtrim,\n splitCells,\n escape\n} = require('./helpers.js');\n\n/**\n * Block Lexer\n */\nmodule.exports = class Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.rules = block.normal;\n\n if (this.options.pedantic) {\n this.rules = block.pedantic;\n } else if (this.options.gfm) {\n this.rules = block.gfm;\n }\n }\n\n /**\n * Expose Block Rules\n */\n static get rules() {\n return block;\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n };\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n return this.token(src, true);\n };\n\n /**\n * Lexing\n */\n token(src, top) {\n src = src.replace(/^ +$/gm, '');\n let next,\n loose,\n cap,\n bull,\n b,\n item,\n listStart,\n listItems,\n t,\n space,\n i,\n tag,\n l,\n isordered,\n istask,\n ischecked;\n\n while (src) {\n // newline\n if (cap = this.rules.newline.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[0].length > 1) {\n this.tokens.push({\n type: 'space'\n });\n }\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n const lastToken = this.tokens[this.tokens.length - 1];\n src = src.substring(cap[0].length);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && lastToken.type === 'paragraph') {\n lastToken.text += '\\n' + cap[0].trimRight();\n } else {\n cap = cap[0].replace(/^ {4}/gm, '');\n this.tokens.push({\n type: 'code',\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(cap, '\\n')\n : cap\n });\n }\n continue;\n }\n\n // fences\n if (cap = this.rules.fences.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'code',\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: cap[3] || ''\n });\n continue;\n }\n\n // heading\n if (cap = this.rules.heading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[1].length,\n text: cap[2]\n });\n continue;\n }\n\n // table no leading pipe (gfm)\n if (cap = this.rules.nptable.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(item.cells[i], item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // hr\n if (cap = this.rules.hr.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'hr'\n });\n continue;\n }\n\n // blockquote\n if (cap = this.rules.blockquote.exec(src)) {\n src = src.substring(cap[0].length);\n\n this.tokens.push({\n type: 'blockquote_start'\n });\n\n cap = cap[0].replace(/^ *> ?/gm, '');\n\n // Pass `top` to keep the current\n // \"toplevel\" state. This is exactly\n // how markdown.pl works.\n this.token(cap, top);\n\n this.tokens.push({\n type: 'blockquote_end'\n });\n\n continue;\n }\n\n // list\n if (cap = this.rules.list.exec(src)) {\n src = src.substring(cap[0].length);\n bull = cap[2];\n isordered = bull.length > 1;\n\n listStart = {\n type: 'list_start',\n ordered: isordered,\n start: isordered ? +bull : '',\n loose: false\n };\n\n this.tokens.push(listStart);\n\n // Get each top-level item.\n cap = cap[0].match(this.rules.item);\n\n listItems = [];\n next = false;\n l = cap.length;\n i = 0;\n\n for (; i < l; i++) {\n item = cap[i];\n\n // Remove the list item's bullet\n // so it is seen as the next token.\n space = item.length;\n item = item.replace(/^ *([*+-]|\\d+\\.) */, '');\n\n // Outdent whatever the\n // list item contains. Hacky.\n if (~item.indexOf('\\n ')) {\n space -= item.length;\n item = !this.options.pedantic\n ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')\n : item.replace(/^ {1,4}/gm, '');\n }\n\n // Determine whether the next list item belongs here.\n // Backpedal if it does not belong in this list.\n if (i !== l - 1) {\n b = block.bullet.exec(cap[i + 1])[0];\n if (bull.length > 1 ? b.length === 1\n : (b.length > 1 || (this.options.smartLists && b !== bull))) {\n src = cap.slice(i + 1).join('\\n') + src;\n i = l - 1;\n }\n }\n\n // Determine whether item is loose or not.\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n // for discount behavior.\n loose = next || /\\n\\n(?!\\s*$)/.test(item);\n if (i !== l - 1) {\n next = item.charAt(item.length - 1) === '\\n';\n if (!loose) loose = next;\n }\n\n if (loose) {\n listStart.loose = true;\n }\n\n // Check for task list items\n istask = /^\\[[ xX]\\] /.test(item);\n ischecked = undefined;\n if (istask) {\n ischecked = item[1] !== ' ';\n item = item.replace(/^\\[[ xX]\\] +/, '');\n }\n\n t = {\n type: 'list_item_start',\n task: istask,\n checked: ischecked,\n loose: loose\n };\n\n listItems.push(t);\n this.tokens.push(t);\n\n // Recurse.\n this.token(item, false);\n\n this.tokens.push({\n type: 'list_item_end'\n });\n }\n\n if (listStart.loose) {\n l = listItems.length;\n i = 0;\n for (; i < l; i++) {\n listItems[i].loose = true;\n }\n }\n\n this.tokens.push({\n type: 'list_end'\n });\n\n continue;\n }\n\n // html\n if (cap = this.rules.html.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: this.options.sanitize\n ? 'paragraph'\n : 'html',\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]\n });\n continue;\n }\n\n // def\n if (top && (cap = this.rules.def.exec(src))) {\n src = src.substring(cap[0].length);\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n if (!this.tokens.links[tag]) {\n this.tokens.links[tag] = {\n href: cap[2],\n title: cap[3]\n };\n }\n continue;\n }\n\n // table (gfm)\n if (cap = this.rules.table.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(\n item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''),\n item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // lheading\n if (cap = this.rules.lheading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1]\n });\n continue;\n }\n\n // top-level paragraph\n if (top && (cap = this.rules.paragraph.exec(src))) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'paragraph',\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1]\n });\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n // Top-level should never reach here.\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'text',\n text: cap[0]\n });\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return this.tokens;\n };\n};\n","const Renderer = require('./Renderer.js');\nconst Slugger = require('./Slugger.js');\nconst InlineLexer = require('./InlineLexer.js');\nconst TextRenderer = require('./TextRenderer.js');\nconst { defaults } = require('./defaults.js');\nconst {\n merge,\n unescape\n} = require('./helpers.js');\n\n/**\n * Parsing & Compiling\n */\nmodule.exports = class Parser {\n constructor(options) {\n this.tokens = [];\n this.token = null;\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n };\n\n /**\n * Parse Loop\n */\n parse(tokens) {\n this.inline = new InlineLexer(tokens.links, this.options);\n // use an InlineLexer with a TextRenderer to extract pure text\n this.inlineText = new InlineLexer(\n tokens.links,\n merge({}, this.options, { renderer: new TextRenderer() })\n );\n this.tokens = tokens.reverse();\n\n let out = '';\n while (this.next()) {\n out += this.tok();\n }\n\n return out;\n };\n\n /**\n * Next Token\n */\n next() {\n this.token = this.tokens.pop();\n return this.token;\n };\n\n /**\n * Preview Next Token\n */\n peek() {\n return this.tokens[this.tokens.length - 1] || 0;\n };\n\n /**\n * Parse Text Tokens\n */\n parseText() {\n let body = this.token.text;\n\n while (this.peek().type === 'text') {\n body += '\\n' + this.next().text;\n }\n\n return this.inline.output(body);\n };\n\n /**\n * Parse Current Token\n */\n tok() {\n let body = '';\n switch (this.token.type) {\n case 'space': {\n return '';\n }\n case 'hr': {\n return this.renderer.hr();\n }\n case 'heading': {\n return this.renderer.heading(\n this.inline.output(this.token.text),\n this.token.depth,\n unescape(this.inlineText.output(this.token.text)),\n this.slugger);\n }\n case 'code': {\n return this.renderer.code(this.token.text,\n this.token.lang,\n this.token.escaped);\n }\n case 'table': {\n let header = '',\n i,\n row,\n cell,\n j;\n\n // header\n cell = '';\n for (i = 0; i < this.token.header.length; i++) {\n cell += this.renderer.tablecell(\n this.inline.output(this.token.header[i]),\n { header: true, align: this.token.align[i] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n for (i = 0; i < this.token.cells.length; i++) {\n row = this.token.cells[i];\n\n cell = '';\n for (j = 0; j < row.length; j++) {\n cell += this.renderer.tablecell(\n this.inline.output(row[j]),\n { header: false, align: this.token.align[j] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n return this.renderer.table(header, body);\n }\n case 'blockquote_start': {\n body = '';\n\n while (this.next().type !== 'blockquote_end') {\n body += this.tok();\n }\n\n return this.renderer.blockquote(body);\n }\n case 'list_start': {\n body = '';\n const ordered = this.token.ordered,\n start = this.token.start;\n\n while (this.next().type !== 'list_end') {\n body += this.tok();\n }\n\n return this.renderer.list(body, ordered, start);\n }\n case 'list_item_start': {\n body = '';\n const loose = this.token.loose;\n const checked = this.token.checked;\n const task = this.token.task;\n\n if (this.token.task) {\n if (loose) {\n if (this.peek().type === 'text') {\n const nextToken = this.peek();\n nextToken.text = this.renderer.checkbox(checked) + ' ' + nextToken.text;\n } else {\n this.tokens.push({\n type: 'text',\n text: this.renderer.checkbox(checked)\n });\n }\n } else {\n body += this.renderer.checkbox(checked);\n }\n }\n\n while (this.next().type !== 'list_item_end') {\n body += !loose && this.token.type === 'text'\n ? this.parseText()\n : this.tok();\n }\n return this.renderer.listitem(body, task, checked);\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n return this.renderer.html(this.token.text);\n }\n case 'paragraph': {\n return this.renderer.paragraph(this.inline.output(this.token.text));\n }\n case 'text': {\n return this.renderer.paragraph(this.parseText());\n }\n default: {\n const errMsg = 'Token with \"' + this.token.type + '\" type was not found.';\n if (this.options.silent) {\n console.log(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n }\n };\n};\n","/*! smooth-scroll v16.1.0 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */\nwindow.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(){if(\"function\"==typeof window.CustomEvent)return;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e})(),(function(){for(var r=0,e=[\"ms\",\"moz\",\"webkit\",\"o\"],t=0;t<e.length&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[e[t]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[e[t]+\"CancelAnimationFrame\"]||window[e[t]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,t){var n=(new Date).getTime(),o=Math.max(0,16-(n-r)),a=window.setTimeout((function(){e(n+o)}),o);return r=n+o,a}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})})(),(function(e,t){\"function\"==typeof define&&define.amd?define([],(function(){return t(e)})):\"object\"==typeof exports?module.exports=t(e):e.SmoothScroll=t(e)})(\"undefined\"!=typeof global?global:\"undefined\"!=typeof window?window:this,(function(q){\"use strict\";var I={ignore:\"[data-scroll-ignore]\",header:null,topOnEmptyHash:!0,speed:500,speedAsDuration:!1,durationMax:null,durationMin:null,clip:!0,offset:0,easing:\"easeInOutCubic\",customEasing:null,updateURL:!0,popstate:!0,emitEvents:!0},F=function(){var n={};return Array.prototype.forEach.call(arguments,(function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}})),n},r=function(e){\"#\"===e.charAt(0)&&(e=e.substr(1));for(var t,n=String(e),o=n.length,a=-1,r=\"\",i=n.charCodeAt(0);++a<o;){if(0===(t=n.charCodeAt(a)))throw new InvalidCharacterError(\"Invalid character: the input contains U+0000.\");1<=t&&t<=31||127==t||0===a&&48<=t&&t<=57||1===a&&48<=t&&t<=57&&45===i?r+=\"\\\\\"+t.toString(16)+\" \":r+=128<=t||45===t||95===t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122?n.charAt(a):\"\\\\\"+n.charAt(a)}return\"#\"+r},L=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},x=function(e){return e?(t=e,parseInt(q.getComputedStyle(t).height,10)+e.offsetTop):0;var t},H=function(e,t,n,o){if(t.emitEvents&&\"function\"==typeof q.CustomEvent){var a=new CustomEvent(e,{bubbles:!0,detail:{anchor:n,toggle:o}});document.dispatchEvent(a)}};return function(o,e){var A,a,O,C,M={};M.cancelScroll=function(e){cancelAnimationFrame(C),C=null,e||H(\"scrollCancel\",A)},M.animateScroll=function(i,c,e){M.cancelScroll();var s=F(A||I,e||{}),u=\"[object Number]\"===Object.prototype.toString.call(i),t=u||!i.tagName?null:i;if(u||t){var l=q.pageYOffset;s.header&&!O&&(O=document.querySelector(s.header));var n,o,a,m,r,d,f,h,p=x(O),g=u?i:(function(e,t,n,o){var a=0;if(e.offsetParent)for(;a+=e.offsetTop,e=e.offsetParent;);return a=Math.max(a-t-n,0),o&&(a=Math.min(a,L()-q.innerHeight)),a})(t,p,parseInt(\"function\"==typeof s.offset?s.offset(i,c):s.offset,10),s.clip),y=g-l,v=L(),w=0,S=(n=y,a=(o=s).speedAsDuration?o.speed:Math.abs(n/1e3*o.speed),o.durationMax&&a>o.durationMax?o.durationMax:o.durationMin&&a<o.durationMin?o.durationMin:parseInt(a,10)),E=function(e,t){var n,o,a,r=q.pageYOffset;if(e==t||r==t||(l<t&&q.innerHeight+r)>=v)return M.cancelScroll(!0),o=t,a=u,0===(n=i)&&document.body.focus(),a||(n.focus(),document.activeElement!==n&&(n.setAttribute(\"tabindex\",\"-1\"),n.focus(),n.style.outline=\"none\"),q.scrollTo(0,o)),H(\"scrollStop\",s,i,c),!(C=m=null)},b=function(e){var t,n,o;m||(m=e),w+=e-m,d=l+y*(n=r=1<(r=0===S?0:w/S)?1:r,\"easeInQuad\"===(t=s).easing&&(o=n*n),\"easeOutQuad\"===t.easing&&(o=n*(2-n)),\"easeInOutQuad\"===t.easing&&(o=n<.5?2*n*n:(4-2*n)*n-1),\"easeInCubic\"===t.easing&&(o=n*n*n),\"easeOutCubic\"===t.easing&&(o=--n*n*n+1),\"easeInOutCubic\"===t.easing&&(o=n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1),\"easeInQuart\"===t.easing&&(o=n*n*n*n),\"easeOutQuart\"===t.easing&&(o=1- --n*n*n*n),\"easeInOutQuart\"===t.easing&&(o=n<.5?8*n*n*n*n:1-8*--n*n*n*n),\"easeInQuint\"===t.easing&&(o=n*n*n*n*n),\"easeOutQuint\"===t.easing&&(o=1+--n*n*n*n*n),\"easeInOutQuint\"===t.easing&&(o=n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n),t.customEasing&&(o=t.customEasing(n)),o||n),q.scrollTo(0,Math.floor(d)),E(d,g)||(C=q.requestAnimationFrame(b),m=e)};0===q.pageYOffset&&q.scrollTo(0,0),f=i,h=s,u||history.pushState&&h.updateURL&&history.pushState({smoothScroll:JSON.stringify(h),anchor:f.id},document.title,f===document.documentElement?\"#top\":\"#\"+f.id),\"matchMedia\"in q&&q.matchMedia(\"(prefers-reduced-motion)\").matches?q.scrollTo(0,Math.floor(g)):(H(\"scrollStart\",s,i,c),M.cancelScroll(!0),q.requestAnimationFrame(b))}};var t=function(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&\"closest\"in e.target&&(a=e.target.closest(o))&&\"a\"===a.tagName.toLowerCase()&&!e.target.closest(A.ignore)&&a.hostname===q.location.hostname&&a.pathname===q.location.pathname&&/#/.test(a.href)){var t,n=r(a.hash);if(\"#\"===n){if(!A.topOnEmptyHash)return;t=document.documentElement}else t=document.querySelector(n);(t=t||\"#top\"!==n?t:document.documentElement)&&(e.preventDefault(),(function(e){if(history.replaceState&&e.updateURL&&!history.state){var t=q.location.hash;t=t||\"\",history.replaceState({smoothScroll:JSON.stringify(e),anchor:t||q.pageYOffset},document.title,t||q.location.href)}})(A),M.animateScroll(t,a))}},n=function(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(A)){var t=history.state.anchor;\"string\"==typeof t&&t&&!(t=document.querySelector(r(history.state.anchor)))||M.animateScroll(t,null,{updateURL:!1})}};M.destroy=function(){A&&(document.removeEventListener(\"click\",t,!1),q.removeEventListener(\"popstate\",n,!1),M.cancelScroll(),C=O=a=A=null)};return (function(){if(!(\"querySelector\"in document&&\"addEventListener\"in q&&\"requestAnimationFrame\"in q&&\"closest\"in q.Element.prototype))throw\"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.\";M.destroy(),A=F(I,e||{}),O=A.header?document.querySelector(A.header):null,document.addEventListener(\"click\",t,!1),A.updateURL&&A.popstate&&q.addEventListener(\"popstate\",n,!1)})(),M}}));","var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = self.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.onabort = function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!self.fetch) {\n self.fetch = fetch\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n}\n","import { decorate, createDefaultSetter } from './private/utils';\nvar defineProperty = Object.defineProperty;\n\n\nfunction handleDescriptor(target, key, descriptor) {\n var configurable = descriptor.configurable,\n enumerable = descriptor.enumerable,\n initializer = descriptor.initializer,\n value = descriptor.value;\n\n return {\n configurable: configurable,\n enumerable: enumerable,\n\n get: function get() {\n // This happens if someone accesses the\n // property directly on the prototype\n if (this === target) {\n return;\n }\n\n var ret = initializer ? initializer.call(this) : value;\n\n defineProperty(this, key, {\n configurable: configurable,\n enumerable: enumerable,\n writable: true,\n value: ret\n });\n\n return ret;\n },\n\n\n set: createDefaultSetter(key)\n };\n}\n\nexport default function lazyInitialize() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _desc, _value, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;\n\nfunction _initDefineProp(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n}\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nimport lazyInitialize from '../lazy-initialize';\n\nvar defineProperty = Object.defineProperty,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n getOwnPropertySymbols = Object.getOwnPropertySymbols;\n\n\nexport function isDescriptor(desc) {\n if (!desc || !desc.hasOwnProperty) {\n return false;\n }\n\n var keys = ['value', 'initializer', 'get', 'set'];\n\n for (var i = 0, l = keys.length; i < l; i++) {\n if (desc.hasOwnProperty(keys[i])) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function decorate(handleDescriptor, entryArgs) {\n if (isDescriptor(entryArgs[entryArgs.length - 1])) {\n return handleDescriptor.apply(undefined, _toConsumableArray(entryArgs).concat([[]]));\n } else {\n return function () {\n return handleDescriptor.apply(undefined, _toConsumableArray(Array.prototype.slice.call(arguments)).concat([entryArgs]));\n };\n }\n}\n\nvar Meta = (_class = function Meta() {\n _classCallCheck(this, Meta);\n\n _initDefineProp(this, 'debounceTimeoutIds', _descriptor, this);\n\n _initDefineProp(this, 'throttleTimeoutIds', _descriptor2, this);\n\n _initDefineProp(this, 'throttlePreviousTimestamps', _descriptor3, this);\n\n _initDefineProp(this, 'throttleTrailingArgs', _descriptor4, this);\n\n _initDefineProp(this, 'profileLastRan', _descriptor5, this);\n}, (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'debounceTimeoutIds', [lazyInitialize], {\n enumerable: true,\n initializer: function initializer() {\n return {};\n }\n}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'throttleTimeoutIds', [lazyInitialize], {\n enumerable: true,\n initializer: function initializer() {\n return {};\n }\n}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, 'throttlePreviousTimestamps', [lazyInitialize], {\n enumerable: true,\n initializer: function initializer() {\n return {};\n }\n}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, 'throttleTrailingArgs', [lazyInitialize], {\n enumerable: true,\n initializer: function initializer() {\n return null;\n }\n}), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, 'profileLastRan', [lazyInitialize], {\n enumerable: true,\n initializer: function initializer() {\n return null;\n }\n})), _class);\n\n\nvar META_KEY = typeof Symbol === 'function' ? Symbol('__core_decorators__') : '__core_decorators__';\n\nexport function metaFor(obj) {\n if (obj.hasOwnProperty(META_KEY) === false) {\n defineProperty(obj, META_KEY, {\n // Defaults: NOT enumerable, configurable, or writable\n value: new Meta()\n });\n }\n\n return obj[META_KEY];\n}\n\nexport var getOwnKeys = getOwnPropertySymbols ? function (object) {\n return getOwnPropertyNames(object).concat(getOwnPropertySymbols(object));\n} : getOwnPropertyNames;\n\nexport function getOwnPropertyDescriptors(obj) {\n var descs = {};\n\n getOwnKeys(obj).forEach(function (key) {\n return descs[key] = getOwnPropertyDescriptor(obj, key);\n });\n\n return descs;\n}\n\nexport function createDefaultSetter(key) {\n return function set(newValue) {\n Object.defineProperty(this, key, {\n configurable: true,\n writable: true,\n // IS enumerable when reassigned by the outside word\n enumerable: true,\n value: newValue\n });\n\n return newValue;\n };\n}\n\nexport function bind(fn, context) {\n if (fn.bind) {\n return fn.bind(context);\n } else {\n return function __autobind__() {\n return fn.apply(context, arguments);\n };\n }\n}\n\nexport var warn = function () {\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) !== 'object' || !console || typeof console.warn !== 'function') {\n return function () {};\n } else {\n return bind(console.warn, console);\n }\n}();\n\nvar seenDeprecations = {};\nexport function internalDeprecation(msg) {\n if (seenDeprecations[msg] !== true) {\n seenDeprecations[msg] = true;\n warn('DEPRECATION: ' + msg);\n }\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { decorate } from './private/utils';\n\nvar GENERIC_FUNCTION_ERROR = '{child} does not properly override {parent}';\nvar FUNCTION_REGEXP = /^function ([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*)?(\\([^\\)]*\\))[\\s\\S]+$/;\n\nvar SyntaxErrorReporter = function () {\n _createClass(SyntaxErrorReporter, [{\n key: '_getTopic',\n value: function _getTopic(descriptor) {\n if (descriptor === undefined) {\n return null;\n }\n\n if ('value' in descriptor) {\n return descriptor.value;\n }\n\n if ('get' in descriptor) {\n return descriptor.get;\n }\n\n if ('set' in descriptor) {\n return descriptor.set;\n }\n }\n }, {\n key: '_extractTopicSignature',\n value: function _extractTopicSignature(topic) {\n switch (typeof topic === 'undefined' ? 'undefined' : _typeof(topic)) {\n case 'function':\n return this._extractFunctionSignature(topic);\n default:\n return this.key;\n }\n }\n }, {\n key: '_extractFunctionSignature',\n value: function _extractFunctionSignature(fn) {\n var _this = this;\n\n return fn.toString().replace(FUNCTION_REGEXP, function (match) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.key;\n var params = arguments[2];\n return name + params;\n });\n }\n }, {\n key: 'key',\n get: function get() {\n return this.childDescriptor.key;\n }\n }, {\n key: 'parentNotation',\n get: function get() {\n return this.parentKlass.constructor.name + '#' + this.parentPropertySignature;\n }\n }, {\n key: 'childNotation',\n get: function get() {\n return this.childKlass.constructor.name + '#' + this.childPropertySignature;\n }\n }, {\n key: 'parentTopic',\n get: function get() {\n return this._getTopic(this.parentDescriptor);\n }\n }, {\n key: 'childTopic',\n get: function get() {\n return this._getTopic(this.childDescriptor);\n }\n }, {\n key: 'parentPropertySignature',\n get: function get() {\n return this._extractTopicSignature(this.parentTopic);\n }\n }, {\n key: 'childPropertySignature',\n get: function get() {\n return this._extractTopicSignature(this.childTopic);\n }\n }]);\n\n function SyntaxErrorReporter(parentKlass, childKlass, parentDescriptor, childDescriptor) {\n _classCallCheck(this, SyntaxErrorReporter);\n\n this.parentKlass = parentKlass;\n this.childKlass = childKlass;\n this.parentDescriptor = parentDescriptor;\n this.childDescriptor = childDescriptor;\n }\n\n _createClass(SyntaxErrorReporter, [{\n key: 'assert',\n value: function assert(condition) {\n var msg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n if (condition !== true) {\n this.error(GENERIC_FUNCTION_ERROR + msg);\n }\n }\n }, {\n key: 'error',\n value: function error(msg) {\n var _this2 = this;\n\n msg = msg\n // Replace lazily, because they actually might not\n // be available in all cases\n .replace('{parent}', function (m) {\n return _this2.parentNotation;\n }).replace('{child}', function (m) {\n return _this2.childNotation;\n });\n throw new SyntaxError(msg);\n }\n }]);\n\n return SyntaxErrorReporter;\n}();\n\nfunction getDescriptorType(descriptor) {\n if (descriptor.hasOwnProperty('value')) {\n return 'data';\n }\n\n if (descriptor.hasOwnProperty('get') || descriptor.hasOwnProperty('set')) {\n return 'accessor';\n }\n\n // If none of them exist, browsers treat it as\n // a data descriptor with a value of `undefined`\n return 'data';\n}\n\nfunction checkFunctionSignatures(parent, child, reporter) {\n reporter.assert(parent.length === child.length);\n}\n\nfunction checkDataDescriptors(parent, child, reporter) {\n var parentValueType = _typeof(parent.value);\n var childValueType = _typeof(child.value);\n\n if (parentValueType === 'undefined' && childValueType === 'undefined') {\n // class properties can be any expression, which isn't ran until the\n // the instance is created, so we can't reliably get type information\n // for them yet (per spec). Perhaps when Babel includes flow-type info\n // in runtime? Tried regex solutions, but super hacky and only feasible\n // on primitives, which is confusing for usage...\n reporter.error('descriptor values are both undefined. (class properties are are not currently supported)\\'');\n }\n\n if (parentValueType !== childValueType) {\n var isFunctionOverUndefined = childValueType === 'function' && parentValueType === undefined;\n // Even though we don't support class properties, this\n // will still handle more than just functions, just in case.\n // Shadowing an undefined value is an error if the inherited\n // value was undefined (usually a class property, not a method)\n if (isFunctionOverUndefined || parentValueType !== undefined) {\n reporter.error('value types do not match. {parent} is \"' + parentValueType + '\", {child} is \"' + childValueType + '\"');\n }\n }\n\n // Switch, in preparation for supporting more types\n switch (childValueType) {\n case 'function':\n checkFunctionSignatures(parent.value, child.value, reporter);\n break;\n\n default:\n reporter.error('Unexpected error. Please file a bug with: {parent} is \"' + parentValueType + '\", {child} is \"' + childValueType + '\"');\n break;\n }\n}\n\nfunction checkAccessorDescriptors(parent, child, reporter) {\n var parentHasGetter = typeof parent.get === 'function';\n var childHasGetter = typeof child.get === 'function';\n var parentHasSetter = typeof parent.set === 'function';\n var childHasSetter = typeof child.set === 'function';\n\n if (parentHasGetter || childHasGetter) {\n if (!parentHasGetter && parentHasSetter) {\n reporter.error('{parent} is setter but {child} is getter');\n }\n\n if (!childHasGetter && childHasSetter) {\n reporter.error('{parent} is getter but {child} is setter');\n }\n\n checkFunctionSignatures(parent.get, child.get, reporter);\n }\n\n if (parentHasSetter || childHasSetter) {\n if (!parentHasSetter && parentHasGetter) {\n reporter.error('{parent} is getter but {child} is setter');\n }\n\n if (!childHasSetter && childHasGetter) {\n reporter.error('{parent} is setter but {child} is getter');\n }\n\n checkFunctionSignatures(parent.set, child.set, reporter);\n }\n}\n\nfunction checkDescriptors(parent, child, reporter) {\n var parentType = getDescriptorType(parent);\n var childType = getDescriptorType(child);\n\n if (parentType !== childType) {\n reporter.error('descriptor types do not match. {parent} is \"' + parentType + '\", {child} is \"' + childType + '\"');\n }\n\n switch (childType) {\n case 'data':\n checkDataDescriptors(parent, child, reporter);\n break;\n\n case 'accessor':\n checkAccessorDescriptors(parent, child, reporter);\n break;\n }\n}\n\nvar suggestionTransforms = [function (key) {\n return key.toLowerCase();\n}, function (key) {\n return key.toUpperCase();\n}, function (key) {\n return key + 's';\n}, function (key) {\n return key.slice(0, -1);\n}, function (key) {\n return key.slice(1, key.length);\n}];\n\nfunction findPossibleAlternatives(superKlass, key) {\n for (var i = 0, l = suggestionTransforms.length; i < l; i++) {\n var fn = suggestionTransforms[i];\n var suggestion = fn(key);\n\n if (suggestion in superKlass) {\n return suggestion;\n }\n }\n\n return null;\n}\n\nfunction handleDescriptor(target, key, descriptor) {\n descriptor.key = key;\n var superKlass = Object.getPrototypeOf(target);\n var superDescriptor = Object.getOwnPropertyDescriptor(superKlass, key);\n var reporter = new SyntaxErrorReporter(superKlass, target, superDescriptor, descriptor);\n\n if (superDescriptor === undefined) {\n var suggestedKey = findPossibleAlternatives(superKlass, key);\n var suggestion = suggestedKey ? '\\n\\n Did you mean \"' + suggestedKey + '\"?' : '';\n reporter.error('No descriptor matching {child} was found on the prototype chain.' + suggestion);\n }\n\n checkDescriptors(superDescriptor, descriptor, reporter);\n\n return descriptor;\n}\n\nexport default function override() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport { decorate, warn } from './private/utils';\n\nvar DEFAULT_MSG = 'This function will be removed in future versions.';\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n msg = _ref2$ === undefined ? DEFAULT_MSG : _ref2$,\n _ref2$2 = _ref2[1],\n options = _ref2$2 === undefined ? {} : _ref2$2;\n\n if (typeof descriptor.value !== 'function') {\n throw new SyntaxError('Only functions can be marked as deprecated');\n }\n\n var methodSignature = target.constructor.name + '#' + key;\n\n if (options.url) {\n msg += '\\n\\n See ' + options.url + ' for more details.\\n\\n';\n }\n\n return _extends({}, descriptor, {\n value: function deprecationWrapper() {\n warn('DEPRECATION ' + methodSignature + ': ' + msg);\n return descriptor.value.apply(this, arguments);\n }\n });\n}\n\nexport default function deprecate() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { decorate } from './private/utils';\n\nfunction suppressedWarningNoop() {\n // Warnings are currently suppressed via @suppressWarnings\n}\n\nfunction applyWithoutWarnings(context, fn, args) {\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) === 'object') {\n var nativeWarn = console.warn;\n console.warn = suppressedWarningNoop;\n var ret = fn.apply(context, args);\n console.warn = nativeWarn;\n return ret;\n } else {\n return fn.apply(context, args);\n }\n}\n\nfunction handleDescriptor(target, key, descriptor) {\n return _extends({}, descriptor, {\n value: function suppressWarningsWrapper() {\n return applyWithoutWarnings(this, descriptor.value, arguments);\n }\n });\n}\n\nexport default function suppressWarnings() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { decorate, internalDeprecation } from './private/utils';\n\nfunction toObject(cache, value) {\n if (value === Object(value)) {\n return value;\n }\n return cache[value] || (cache[value] = {});\n}\n\nfunction applyAndCache(context, fn, args, cache, signature) {\n var ret = fn.apply(context, args);\n cache[signature] = ret;\n return ret;\n}\n\nfunction metaForDescriptor(descriptor) {\n var fn = void 0,\n wrapKey = void 0;\n\n // This is ugly code, but way faster than other\n // ways I tried that *looked* pretty\n\n if (descriptor.value) {\n fn = descriptor.value;\n wrapKey = 'value';\n } else if (descriptor.get) {\n fn = descriptor.get;\n wrapKey = 'get';\n } else if (descriptor.set) {\n fn = descriptor.set;\n wrapKey = 'set';\n }\n\n return { fn: fn, wrapKey: wrapKey };\n}\n\nfunction handleDescriptor(target, key, descriptor) {\n var _metaForDescriptor = metaForDescriptor(descriptor),\n fn = _metaForDescriptor.fn,\n wrapKey = _metaForDescriptor.wrapKey;\n\n var argumentCache = new WeakMap();\n var signatureCache = Object.create(null);\n var primativeRefCache = Object.create(null);\n var argumentIdCounter = 0;\n\n return _extends({}, descriptor, _defineProperty({}, wrapKey, function memoizeWrapper() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var signature = '0';\n\n for (var i = 0, l = args.length; i < l; i++) {\n var arg = args[i];\n var argRef = toObject(primativeRefCache, arg);\n var argKey = argumentCache.get(argRef);\n\n if (argKey === undefined) {\n argKey = ++argumentIdCounter;\n argumentCache.set(argRef, argKey);\n }\n\n signature += argKey;\n }\n\n return signatureCache[signature] || applyAndCache(this, fn, arguments, signatureCache, signature);\n }));\n}\n\nexport default function memoize() {\n internalDeprecation('@memoize is deprecated and will be removed shortly. Use @memoize from lodash-decorators.\\n\\n https://www.npmjs.com/package/lodash-decorators');\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return decorate(handleDescriptor, args);\n}","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nimport { decorate, createDefaultSetter, getOwnPropertyDescriptors, getOwnKeys, bind } from './private/utils';\nvar defineProperty = Object.defineProperty,\n getPrototypeOf = Object.getPrototypeOf;\n\n\nvar mapStore = void 0;\n\nfunction getBoundSuper(obj, fn) {\n if (typeof WeakMap === 'undefined') {\n throw new Error('Using @autobind on ' + fn.name + '() requires WeakMap support due to its use of super.' + fn.name + '()\\n See https://github.com/jayphelps/core-decorators.js/issues/20');\n }\n\n if (!mapStore) {\n mapStore = new WeakMap();\n }\n\n if (mapStore.has(obj) === false) {\n mapStore.set(obj, new WeakMap());\n }\n\n var superStore = mapStore.get(obj);\n\n if (superStore.has(fn) === false) {\n superStore.set(fn, bind(fn, obj));\n }\n\n return superStore.get(fn);\n}\n\nfunction autobindClass(klass) {\n var descs = getOwnPropertyDescriptors(klass.prototype);\n var keys = getOwnKeys(descs);\n\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n var desc = descs[key];\n\n if (typeof desc.value !== 'function' || key === 'constructor') {\n continue;\n }\n\n defineProperty(klass.prototype, key, autobindMethod(klass.prototype, key, desc));\n }\n}\n\nfunction autobindMethod(target, key, _ref) {\n var fn = _ref.value,\n configurable = _ref.configurable,\n enumerable = _ref.enumerable;\n\n if (typeof fn !== 'function') {\n throw new SyntaxError('@autobind can only be used on functions, not: ' + fn);\n }\n\n var constructor = target.constructor;\n\n\n return {\n configurable: configurable,\n enumerable: enumerable,\n\n get: function get() {\n // Class.prototype.key lookup\n // Someone accesses the property directly on the prototype on which it is\n // actually defined on, i.e. Class.prototype.hasOwnProperty(key)\n if (this === target) {\n return fn;\n }\n\n // Class.prototype.key lookup\n // Someone accesses the property directly on a prototype but it was found\n // up the chain, not defined directly on it\n // i.e. Class.prototype.hasOwnProperty(key) == false && key in Class.prototype\n if (this.constructor !== constructor && getPrototypeOf(this).constructor === constructor) {\n return fn;\n }\n\n // Autobound method calling super.sameMethod() which is also autobound and so on.\n if (this.constructor !== constructor && key in this.constructor.prototype) {\n return getBoundSuper(this, fn);\n }\n\n var boundFn = bind(fn, this);\n\n defineProperty(this, key, {\n configurable: true,\n writable: true,\n // NOT enumerable when it's a bound method\n enumerable: false,\n value: boundFn\n });\n\n return boundFn;\n },\n\n set: createDefaultSetter(key)\n };\n}\n\nfunction handle(args) {\n if (args.length === 1) {\n return autobindClass.apply(undefined, _toConsumableArray(args));\n } else {\n return autobindMethod.apply(undefined, _toConsumableArray(args));\n }\n}\n\nexport default function autobind() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 0) {\n return function () {\n return handle(arguments);\n };\n } else {\n return handle(args);\n }\n}","import { decorate } from './private/utils';\n\nfunction handleDescriptor(target, key, descriptor) {\n descriptor.writable = false;\n return descriptor;\n}\n\nexport default function readonly() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","import { decorate } from './private/utils';\n\nfunction handleDescriptor(target, key, descriptor) {\n descriptor.enumerable = true;\n return descriptor;\n}\n\nexport default function enumerable() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","import { decorate } from './private/utils';\n\nfunction handleDescriptor(target, key, descriptor) {\n descriptor.enumerable = false;\n return descriptor;\n}\n\nexport default function nonenumerable() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","import { decorate } from './private/utils';\n\nfunction handleDescriptor(target, key, descriptor) {\n descriptor.configurable = false;\n return descriptor;\n}\n\nexport default function nonconfigurable() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport { decorate, metaFor, internalDeprecation } from './private/utils';\n\nvar DEFAULT_TIMEOUT = 300;\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n wait = _ref2$ === undefined ? DEFAULT_TIMEOUT : _ref2$,\n _ref2$2 = _ref2[1],\n immediate = _ref2$2 === undefined ? false : _ref2$2;\n\n var callback = descriptor.value;\n\n if (typeof callback !== 'function') {\n throw new SyntaxError('Only functions can be debounced');\n }\n\n return _extends({}, descriptor, {\n value: function value() {\n var _this = this;\n\n var _metaFor = metaFor(this),\n debounceTimeoutIds = _metaFor.debounceTimeoutIds;\n\n var timeout = debounceTimeoutIds[key];\n var callNow = immediate && !timeout;\n var args = arguments;\n\n clearTimeout(timeout);\n\n debounceTimeoutIds[key] = setTimeout(function () {\n delete debounceTimeoutIds[key];\n if (!immediate) {\n callback.apply(_this, args);\n }\n }, wait);\n\n if (callNow) {\n callback.apply(this, args);\n }\n }\n });\n}\n\nexport default function debounce() {\n internalDeprecation('@debounce is deprecated and will be removed shortly. Use @debounce from lodash-decorators.\\n\\n https://www.npmjs.com/package/lodash-decorators');\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport { decorate, metaFor, internalDeprecation } from './private/utils';\n\nvar DEFAULT_TIMEOUT = 300;\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n wait = _ref2$ === undefined ? DEFAULT_TIMEOUT : _ref2$,\n _ref2$2 = _ref2[1],\n options = _ref2$2 === undefined ? {} : _ref2$2;\n\n var callback = descriptor.value;\n\n if (typeof callback !== 'function') {\n throw new SyntaxError('Only functions can be throttled');\n }\n\n if (options.leading !== false) {\n options.leading = true;\n }\n\n if (options.trailing !== false) {\n options.trailing = true;\n }\n\n return _extends({}, descriptor, {\n value: function value() {\n var _this = this;\n\n var meta = metaFor(this);\n var throttleTimeoutIds = meta.throttleTimeoutIds,\n throttlePreviousTimestamps = meta.throttlePreviousTimestamps;\n\n var timeout = throttleTimeoutIds[key];\n // last execute timestamp\n var previous = throttlePreviousTimestamps[key] || 0;\n var now = Date.now();\n\n if (options.trailing) {\n meta.throttleTrailingArgs = arguments;\n }\n\n // if first be called and disable the execution on the leading edge\n // set last execute timestamp to now\n if (!previous && options.leading === false) {\n previous = now;\n }\n\n var remaining = wait - (now - previous);\n\n if (remaining <= 0) {\n clearTimeout(timeout);\n delete throttleTimeoutIds[key];\n throttlePreviousTimestamps[key] = now;\n callback.apply(this, arguments);\n } else if (!timeout && options.trailing) {\n throttleTimeoutIds[key] = setTimeout(function () {\n throttlePreviousTimestamps[key] = options.leading === false ? 0 : Date.now();\n delete throttleTimeoutIds[key];\n callback.apply(_this, meta.throttleTrailingArgs);\n // don't leak memory!\n meta.throttleTrailingArgs = null;\n }, remaining);\n }\n }\n });\n}\n\nexport default function throttle() {\n internalDeprecation('@throttle is deprecated and will be removed shortly. Use @throttle from lodash-decorators.\\n\\n https://www.npmjs.com/package/lodash-decorators');\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nimport { decorate as _decorate, createDefaultSetter } from './private/utils';\nvar defineProperty = Object.defineProperty;\n\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _toArray(_ref),\n decorator = _ref2[0],\n args = _ref2.slice(1);\n\n var configurable = descriptor.configurable,\n enumerable = descriptor.enumerable,\n writable = descriptor.writable;\n\n var originalGet = descriptor.get;\n var originalSet = descriptor.set;\n var originalValue = descriptor.value;\n var isGetter = !!originalGet;\n\n return {\n configurable: configurable,\n enumerable: enumerable,\n get: function get() {\n var fn = isGetter ? originalGet.call(this) : originalValue;\n var value = decorator.call.apply(decorator, [this, fn].concat(_toConsumableArray(args)));\n\n if (isGetter) {\n return value;\n } else {\n var desc = {\n configurable: configurable,\n enumerable: enumerable\n };\n\n desc.value = value;\n desc.writable = writable;\n\n defineProperty(this, key, desc);\n\n return value;\n }\n },\n\n set: isGetter ? originalSet : createDefaultSetter()\n };\n}\n\nexport default function decorate() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _decorate(handleDescriptor, args);\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { getOwnPropertyDescriptors, getOwnKeys, internalDeprecation } from './private/utils';\n\nvar defineProperty = Object.defineProperty,\n getPrototypeOf = Object.getPrototypeOf;\n\n\nfunction buggySymbol(symbol) {\n return Object.prototype.toString.call(symbol) === '[object Symbol]' && (typeof symbol === 'undefined' ? 'undefined' : _typeof(symbol)) === 'object';\n}\n\nfunction hasProperty(prop, obj) {\n // We have to traverse manually prototypes' chain for polyfilled ES6 Symbols\n // like \"in\" operator does.\n // I.e.: Babel 5 Symbol polyfill stores every created symbol in Object.prototype.\n // That's why we cannot use construction like \"prop in obj\" to check, if needed\n // prop actually exists in given object/prototypes' chain.\n if (buggySymbol(prop)) {\n do {\n if (obj === Object.prototype) {\n // Polyfill assigns undefined as value for stored symbol key.\n // We can assume in this special case if there is nothing assigned it doesn't exist.\n return typeof obj[prop] !== 'undefined';\n }\n if (obj.hasOwnProperty(prop)) {\n return true;\n }\n } while (obj = getPrototypeOf(obj));\n return false;\n } else {\n return prop in obj;\n }\n}\n\nfunction handleClass(target, mixins) {\n if (!mixins.length) {\n throw new SyntaxError('@mixin() class ' + target.name + ' requires at least one mixin as an argument');\n }\n\n for (var i = 0, l = mixins.length; i < l; i++) {\n var descs = getOwnPropertyDescriptors(mixins[i]);\n var keys = getOwnKeys(descs);\n\n for (var j = 0, k = keys.length; j < k; j++) {\n var key = keys[j];\n\n if (!hasProperty(key, target.prototype)) {\n defineProperty(target.prototype, key, descs[key]);\n }\n }\n }\n}\n\nexport default function mixin() {\n for (var _len = arguments.length, mixins = Array(_len), _key = 0; _key < _len; _key++) {\n mixins[_key] = arguments[_key];\n }\n\n internalDeprecation('@mixin is deprecated and will be removed shortly. Use @mixin from lodash-decorators.\\n\\n https://www.npmjs.com/package/lodash-decorators');\n\n if (typeof mixins[0] === 'function') {\n return handleClass(mixins[0], []);\n } else {\n return function (target) {\n return handleClass(target, mixins);\n };\n }\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport { decorate } from './private/utils';\n\nvar labels = {};\n\n// Exported for mocking in tests\nexport var defaultConsole = {\n time: console.time ? console.time.bind(console) : function (label) {\n labels[label] = new Date();\n },\n timeEnd: console.timeEnd ? console.timeEnd.bind(console) : function (label) {\n var timeNow = new Date();\n var timeTaken = timeNow - labels[label];\n delete labels[label];\n console.log(label + ': ' + timeTaken + 'ms');\n }\n};\n\nvar count = 0;\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n prefix = _ref2$ === undefined ? null : _ref2$,\n _ref2$2 = _ref2[1],\n console = _ref2$2 === undefined ? defaultConsole : _ref2$2;\n\n var fn = descriptor.value;\n\n if (prefix === null) {\n prefix = target.constructor.name + '.' + key;\n }\n\n if (typeof fn !== 'function') {\n throw new SyntaxError('@time can only be used on functions, not: ' + fn);\n }\n\n return _extends({}, descriptor, {\n value: function value() {\n var label = prefix + '-' + count;\n count++;\n console.time(label);\n\n try {\n return fn.apply(this, arguments);\n } finally {\n console.timeEnd(label);\n }\n }\n });\n}\n\nexport default function time() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport { decorate } from './private/utils';\nvar getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n\nfunction handleDescriptor(target, key, descriptor) {\n var superKlass = getPrototypeOf(target);\n var superDesc = getOwnPropertyDescriptor(superKlass, key);\n\n return _extends({}, superDesc, {\n value: descriptor.value,\n initializer: descriptor.initializer,\n get: descriptor.get || superDesc.get,\n set: descriptor.set || superDesc.set\n });\n}\n\nexport default function extendDescriptor() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport { decorate, metaFor, warn, bind } from './private/utils';\n\nvar oc = console;\n\n// Exported for mocking in tests\nexport var defaultConsole = {\n profile: console.profile ? bind(console.profile, console) : function () {},\n profileEnd: console.profileEnd ? bind(console.profileEnd, console) : function () {},\n warn: warn\n};\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _slicedToArray(_ref, 3),\n _ref2$ = _ref2[0],\n prefix = _ref2$ === undefined ? null : _ref2$,\n _ref2$2 = _ref2[1],\n onceThrottleOrFunction = _ref2$2 === undefined ? false : _ref2$2,\n _ref2$3 = _ref2[2],\n console = _ref2$3 === undefined ? defaultConsole : _ref2$3;\n\n if (!profile.__enabled) {\n if (!profile.__warned) {\n console.warn('console.profile is not supported. All @profile decorators are disabled.');\n profile.__warned = true;\n }\n return descriptor;\n }\n\n var fn = descriptor.value;\n\n if (prefix === null) {\n prefix = target.constructor.name + '.' + key;\n }\n\n if (typeof fn !== 'function') {\n throw new SyntaxError('@profile can only be used on functions, not: ' + fn);\n }\n\n return _extends({}, descriptor, {\n value: function value() {\n var now = Date.now();\n var meta = metaFor(this);\n if (onceThrottleOrFunction === true && !meta.profileLastRan || onceThrottleOrFunction === false || typeof onceThrottleOrFunction === 'number' && now - meta.profileLastRan > onceThrottleOrFunction || typeof onceThrottleOrFunction === 'function' && onceThrottleOrFunction.apply(this, arguments)) {\n console.profile(prefix);\n meta.profileLastRan = now;\n }\n\n try {\n return fn.apply(this, arguments);\n } finally {\n console.profileEnd(prefix);\n }\n }\n });\n}\n\nexport default function profile() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}\n\n// Only Chrome, Firefox, and Edge support profile.\n// Exposing properties for testing.\nprofile.__enabled = !!console.profile;\nprofile.__warned = false;","var defineProperty = Object.defineProperty,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n\nexport default function applyDecorators(Class, props) {\n var prototype = Class.prototype;\n\n\n for (var key in props) {\n var decorators = props[key];\n\n for (var i = 0, l = decorators.length; i < l; i++) {\n var decorator = decorators[i];\n\n defineProperty(prototype, key, decorator(prototype, key, getOwnPropertyDescriptor(prototype, key)));\n }\n }\n\n return Class;\n}","/**\n * core-decorators.js\n * (c) 2017 Jay Phelps and contributors\n * MIT Licensed\n * https://github.com/jayphelps/core-decorators.js\n * @license\n */\nexport { default as override } from './override';\nexport { default as deprecate, default as deprecated } from './deprecate';\nexport { default as suppressWarnings } from './suppress-warnings';\nexport { default as memoize } from './memoize';\nexport { default as autobind } from './autobind';\nexport { default as readonly } from './readonly';\nexport { default as enumerable } from './enumerable';\nexport { default as nonenumerable } from './nonenumerable';\nexport { default as nonconfigurable } from './nonconfigurable';\nexport { default as debounce } from './debounce';\nexport { default as throttle } from './throttle';\nexport { default as decorate } from './decorate';\nexport { default as mixin, default as mixins } from './mixin';\nexport { default as lazyInitialize } from './lazy-initialize';\nexport { default as time } from './time';\nexport { default as extendDescriptor } from './extendDescriptor';\nexport { default as profile } from './profile';\n\n// Helper to apply decorators to a class without transpiler support\nexport { default as applyDecorators } from './applyDecorators';"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/marked/src/helpers.js","webpack:///./node_modules/marked/src/defaults.js","webpack:///./node_modules/marked/src/Renderer.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/marked/src/rules.js","webpack:///./node_modules/marked/src/Slugger.js","webpack:///./node_modules/marked/src/InlineLexer.js","webpack:///./node_modules/marked/src/TextRenderer.js","webpack:///./src/docs/index.ts","webpack:///./node_modules/dompurify/dist/purify.js","webpack:///./node_modules/es6-shim/es6-shim.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/marked/src/marked.js","webpack:///./node_modules/marked/src/Lexer.js","webpack:///./node_modules/marked/src/Parser.js","webpack:///./node_modules/smooth-scroll/dist/smooth-scroll.polyfills.min.js","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./node_modules/core-decorators/es/lazy-initialize.js","webpack:///./node_modules/core-decorators/es/private/utils.js","webpack:///./node_modules/core-decorators/es/override.js","webpack:///./node_modules/core-decorators/es/deprecate.js","webpack:///./node_modules/core-decorators/es/suppress-warnings.js","webpack:///./node_modules/core-decorators/es/memoize.js","webpack:///./node_modules/core-decorators/es/autobind.js","webpack:///./node_modules/core-decorators/es/readonly.js","webpack:///./node_modules/core-decorators/es/enumerable.js","webpack:///./node_modules/core-decorators/es/nonenumerable.js","webpack:///./node_modules/core-decorators/es/nonconfigurable.js","webpack:///./node_modules/core-decorators/es/debounce.js","webpack:///./node_modules/core-decorators/es/throttle.js","webpack:///./node_modules/core-decorators/es/decorate.js","webpack:///./node_modules/core-decorators/es/mixin.js","webpack:///./node_modules/core-decorators/es/time.js","webpack:///./node_modules/core-decorators/es/extendDescriptor.js","webpack:///./node_modules/core-decorators/es/profile.js","webpack:///./node_modules/core-decorators/es/applyDecorators.js","webpack:///./node_modules/core-decorators/es/core-decorators.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","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","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","unescapeTest","unescape","html","replace","_","toLowerCase","charAt","String","fromCharCode","parseInt","substring","caret","nonWordAndColonTest","originIndependentUrl","baseUrls","justDomain","protocol","domain","resolveUrl","base","href","test","rtrim","relativeBase","indexOf","str","invert","length","suffLen","currChar","substr","escape","encode","edit","regex","opt","source","obj","val","getRegex","RegExp","cleanUrl","sanitize","prot","decodeURIComponent","e","encodeURI","noopTest","exec","merge","target","arguments","splitCells","tableRow","count","cells","match","offset","escaped","curr","split","splice","push","trim","findClosingBracket","b","level","checkSanitizeDeprecation","silent","console","warn","getDefaults","baseUrl","breaks","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitizer","smartLists","smartypants","xhtml","defaults","changeDefaults","newDefaults","options","this","code","infostring","lang","out","quote","text","raw","slugger","slug","body","ordered","start","type","checked","header","content","flags","align","title","g","Function","window","block","newline","fences","hr","heading","blockquote","list","def","nptable","table","lheading","_paragraph","_label","_title","bullet","item","_tag","_comment","paragraph","normal","inline","autolink","url","tag","link","reflink","nolink","strong","em","br","del","_punctuation","_escapes","_scheme","_email","_attribute","_href","_extended_email","_backpedal","seen","originalSlug","Renderer","InlineLexer","links","rules","Error","src","output","cap","prevCapZero","inLink","inRawBlock","lastParenIndex","linkLen","slice","outputLink","escapes","codespan","charCodeAt","image","Math","random","toString","DocsPage","enableMenu","checkStatus","SmoothScroll","updateURL","serviceInfoEl","document","querySelector","versionEl","currentStatusEl","serverMessageEl","response","fetch","location","pathname","ok","statusText","classList","remove","apiInfo","json","textContent","version","message","innerHTML","DOMPurify","marked","status","className","err","error","toggle","navbar","toggleMenu","contains","add","addEventListener","navbarLinks","querySelectorAll","Array","from","forEach","autobind","docsPage","init","freeze$1","freeze","x","svg","svgFilters","mathMl","freeze$2","html$1","svg$1","mathMl$1","xml","setPrototypeOf","apply$1","Reflect","apply","addToSet","set","array","element","lcElement","isFrozen","clone","newObject","fun","thisValue","args","seal","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof","iterator","constructor","_toConsumableArray","arr","isArray","arr2","arraySlice","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","suffix","currentScript","hasAttribute","getAttribute","policyName","createHTML","html$$1","createDOMPurify","undefined","root","removed","nodeType","isSupported","originalDocument","useDOMParser","removeTitle","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","TrustedTypes","template","createElement","ownerDocument","trustedTypesPolicy","emptyHTML","_document","implementation","createNodeIterator","getElementsByTagName","createDocumentFragment","importNode","hooks","createHTMLDocument","documentMode","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","concat","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_JQUERY","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","tbody","_forceRemove","node","parentNode","removeChild","outerHTML","_removeAttribute","attribute","getAttributeNode","removeAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","parseFromString","documentElement","firstElementChild","insertBefore","createTextNode","childNodes","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","_isClobbered","elm","nodeName","attributes","setAttribute","namespaceURI","_isNode","_executeHook","entryPoint","currentNode","data","hook","_sanitizeElements","tagName","allowedTags","insertAdjacentHTML","htmlToInsert","cloneNode","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","idAttr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","id","keys","join","setAttributeNS","pop","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","importedNode","oldNode","returnNode","TypeError","toStaticHTML","appendChild","firstChild","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","factory","ArrayIterator","_apply","_call","not","func","throwsError","valueOrFalseIfThrows","isCallableWithoutNew","arePropertyDescriptorsSupported","supportsDescriptors","functionsHaveNames","_forEach","_reduce","reduce","_filter","filter","_some","some","force","configurable","writable","defineProperties","map","forceOverride","method","_toString","isCallable","Value","proxy","originalObject","targetObject","originalDescriptor","getOwnPropertyDescriptor","redefine","newValue","descriptor","defineByDescriptor","preserveToString","properties","Prototype","supportsSubclassing","C","f","Sub","Subclass","arg","self","global","globals","globalIsFinite","isFinite","_indexOf","_arrayIndexOfApply","_concat","_strSlice","_push","_pushApply","_shift","shift","_max","max","_min","min","_floor","floor","_abs","abs","_exp","exp","_log","log","_sqrt","sqrt","_hasOwnProperty","noop","OrigMap","Map","origMapDelete","origMapGet","origMapHas","has","origMapSet","symbolSpecies","species","numberIsNaN","Number","isNaN","numberIsFinite","_sign","sign","number","_log1p","NaN","Infinity","isStandardArguments","isLegacyArguments","callee","isArguments","Type","primitive","string","symbol","overrideNative","replacement","original","hasSymbols","$iterator$","Set","$String","domAll","all","isNullOrUndefined","ES","Call","F","V","IsCallable","RequireObjectCoercible","optMessage","TypeIsObject","ToObject","IsConstructor","ToInt32","ToNumber","ToUint32","ToInteger","ToLength","len","MAX_SAFE_INTEGER","SameValue","a","SameValueZero","IsIterable","GetIterator","itFn","GetMethod","it","IteratorComplete","iterResult","done","IteratorClose","completionIsThrow","returnMethod","innerResult","innerException","IteratorNext","result","next","IteratorStep","Construct","newTarget","isES6internal","construct","proto","SpeciesConstructor","O","defaultConstructor","S","CreateHTML","ToString","p1","IsRegExp","argument","isRegExp","defineWellKnownSymbol","sym","search","symbolSearch","originalSearch","searchShim","regexp","searcher","symbolReplace","originalReplace","replaceValue","replaceShim","searchValue","replacer","symbolSplit","originalSplit","limit","splitShim","separator","splitter","symbolMatchExists","stringMatchIgnoresSymbolMatch","symbolMatch","originalMatch","matchShim","matcher","wrapConstructor","keysToSkip","getOwnPropertyNames","defaultSpeciesGetter","addDefaultSpecies","addIterator","impl","createDataProperty","createDataPropertyOrThrow","emulateES6construct","defaultNewTarget","defaultProto","slots","fromCodePoint","originalFromCodePoint","codePoints","StringShims","RangeError","callSite","cooked","rawString","literalsegments","nextKey","nextSeg","nextSub","stringElements","nextIndex","0","1","stringRepeat","repeat","times","half","stringMaxLength","StringPrototypeShims","thisStr","numTimes","startsWith","searchString","position","searchStr","endsWith","endPosition","pos","end","includes","codePointAt","first","second","startsWithRejectsRegex","startsWithHandlesInfinity","startsWithSupportsSymbolMatch","re","endsWithSupportsSymbolMatch","includesSupportsSymbolMatch","ws","trimRegexp","trimShim","nonWS","nonWSregex","isBadHexRegex","hasStringTrimBug","iteratorResult","StringIterator","_s","_i","ArrayShims","items","mapFn","mapping","T","usingIterator","nextValue","arrayLike","of","A","k","kind","retval","arrayOfSupportsSubclassing","Foo","fooArr","ArrayPrototypeShims","copyWithin","relativeTarget","relativeStart","to","relativeEnd","finalItem","direction","fill","find","predicate","thisArg","findIndex","values","entries","unscopables","originalArrayPrototypeValues","searchElement","getPrototypeOf","arrayFromSwallowsNegativeLengths","arrayFromHandlesIterables","arrayFromHandlesUndefinedMapFunction","origArrayFrom","int32sAsOne","pow","toLengthsCorrectly","reversed","originalForEach","callbackFn","originalMap","originalFilter","originalSome","every","originalEvery","originalReduce","reduceRight","originalReduceRight","lacksOctalSupport","lacksBinarySupport","trimsNonWhitespace","OrigNumber","binaryRegex","octalRegex","isBinary","isOctal","toPrimitive","valueOf","hasNonWS","isBadHex","NumberShim","primValue","receiver","valueOfSucceeds","MAX_VALUE","MIN_VALUE","NEGATIVE_INFINITY","POSITIVE_INFINITY","maxSafeInteger","MIN_SAFE_INTEGER","EPSILON","parseFloat","isInteger","isSafeInteger","FAKENULL","gpo","spo","isEnumerableOn","propertyIsEnumerable","ensureEnumerable","prop","sliceArgs","initial","desiredArgCount","assignTo","assignReducer","symbols","sourceKeys","getOwnPropertySymbols","ObjectShims","assign","is","assignHasPendingExceptions","preventExtensions","thrower","ES5ObjectShims","magic","checkArgs","polyfill","objectKeysAcceptsPrimitives","originalObjectKeys","objectKeysRejectsRegex","regexRejectingObjectKeys","regexKeys","objectGOPNAcceptsPrimitives","cachedWindowNames","originalObjectGetOwnPropertyNames","objectGOPDAcceptsPrimitives","originalObjectGetOwnPropertyDescriptor","objectSealAcceptsPrimitives","originalObjectSeal","isSealed","objectIsSealedAcceptsPrimitives","originalObjectIsSealed","objectFreezeAcceptsPrimitives","originalObjectFreeze","objectIsFrozenAcceptsPrimitives","originalObjectIsFrozen","objectPreventExtensionsAcceptsPrimitives","originalObjectPreventExtensions","isExtensible","objectIsExtensibleAcceptsPrimitives","originalObjectIsExtensible","objectGetProtoAcceptsPrimitives","originalGetProto","desc","hasFlags","regExpFlagsGetter","ignoreCase","multiline","unicode","sticky","regExpSupportsFlagsWithRegex","regExpNeedsToSupportSymbolMatch","regexToStringIsGeneric","regexToStringSupportsGenericFlags","origRegExpToString","R","flagsGetter","sourceDesc","legacySourceGetter","sourceGetter","OrigRegExp","RegExpShim","pattern","patternIsRegExp","$input","regexGlobals","input","lastMatch","lastParen","leftContext","rightContext","inverseEpsilon","roundTiesToEven","BINARY_32_EPSILON","BINARY_32_MAX_VALUE","BINARY_32_MIN_VALUE","E","LOG2E","LOG10E","numberCLZ","clz","MathShims","acosh","xInvSquared","halfX","asinh","aSquared","atanh","cbrt","negate","clz32","cosh","expm1","sum","hypot","y","largest","log2","log10","log1p","sinh","u","tanh","trunc","imul","al","bl","fround","v","withinULPDistance","expected","distance","expm1OfTen","origMathRound","round","roundHandlesBoundaryConditions","smallestPositiveNumberWhereRoundBreaks","largestPositiveNumberWhereRoundBreaks","roundDoesNotIncreaseIntegers","num","origImul","thenable","PromiseShim","setTimeout","IsPromise","promise","_promise","makeZeroTimeout","PromiseCapability","capability","resolve","reject","postMessage","timeouts","event","stopPropagation","fn","P","pr","Promise$prototype","Promise$prototype$then","enqueue","setImmediate","process","nextTick","Promise","task","then","PROMISE_IDENTITY","PROMISE_THROWER","PROMISE_FAKE_CAPABILITY","enqueuePromiseReactionJob","handler","promiseReactionJob","promiseCapability","handlerResult","fulfillPromise","reactionLength","fulfillReactionHandler0","reactionCapability0","rejectReactions0","idx","state","rejectPromise","reason","rejectReactionHandler0","createResolvingFunctions","alreadyResolved","resolution","promiseResolveThenableJob","optimizedThen","resolvingFunctions","resolver","_promiseAllResolver","index","remaining","alreadyCalled","iterable","iteratorRecord","resultCapability","nextPromise","resolveElement","performPromiseAll","exception","ee","race","performPromiseRace","rejectFunc","resolveFunc","onRejected","onFulfilled","returnValueIsIgnored","fulfillReactionHandler","rejectReactionHandler","accept","defer","chain","promiseSupportsSubclassing","promiseIgnoresNonFunctionThenCallbacks","promiseRequiresObjectContext","promiseResolveBroken","p2","getsThenSynchronously","BadResolverPromise","executor","hasBadResolverPromise","origAll","origRace","origResolve","origReject","testOrder","preservesInsertionOrder","preservesNumericInsertionOrder","fastkey","skipInsertionOrderCheck","emptyObject","addIterableToMap","MapConstructor","entry","iter","adder","nextItem","addIterableToSet","SetConstructor","collectionShims","empty","MapEntry","prev","isRemoved","Map$prototype","requireMapSlot","_es6map","isMap","MapIterator","head","_head","isMapIterator","MapShim","_map","_size","_storage","fkey","clear","callback","context","Set$prototype","requireSetSlot","_es6set","isSet","SetShim","ensureMap","decodeKey","size","hasFKey","SetIterator","entireSet","isSetIterator","isGoogleTranslate","mapAcceptsArguments","testMap","mapUsesSameValueZero","mapSupportsChaining","testSet","setUsesSameValueZero","setSupportsChaining","origSetAdd","origSetHas","origSetDel","mapSupportsSubclassing","M","mapFailsToSupportSubclassing","mapRequiresNew","setSupportsSubclassing","setFailsToSupportSubclassing","setRequiresNew","OrigSet","newMap","mapIterationThrowsStopIterator","anonymousSetHas","throwUnlessTargetIsObject","ReflectShims","deleteProperty","ownKeys","callAndCatchException","internalGet","parent","internalSet","propertyKey","objectDotGetPrototypeOf","willCreateCircularPrototype","lastProto","defineOrOverrideReflectProperty","shim","originalReflectGetProto","basic","extensible","Date","dateToString","shimmedDateToString","stringHTMLshims","anchor","big","blink","bold","fixed","fontcolor","color","fontsize","italics","small","strike","sub","sup","shouldOverwrite","quotesCount","JSONstringifiesSymbols","stringify","JSON","JSONstringifyAcceptsObjectSymbol","origStringify","replaceFn","wrappedReplacer","parsedValue","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","Lexer","Parser","TextRenderer","Slugger","tokens","pending","lex","parse","token","setOptions","parser","lexer","inlineLexer","top","loose","bull","listStart","listItems","space","isordered","istask","ischecked","lastToken","trimRight","codeBlockStyle","depth","pre","inlineText","reverse","tok","peek","row","cell","j","tablecell","tablerow","nextToken","checkbox","parseText","listitem","errMsg","Element","closest","parentElement","bubbles","cancelable","detail","createEvent","initCustomEvent","CustomEvent","Event","requestAnimationFrame","cancelAnimationFrame","getTime","q","I","ignore","topOnEmptyHash","speed","speedAsDuration","durationMax","durationMin","clip","easing","customEasing","popstate","emitEvents","InvalidCharacterError","L","scrollHeight","offsetHeight","clientHeight","H","dispatchEvent","cancelScroll","pageYOffset","h","getComputedStyle","height","offsetTop","offsetParent","innerHeight","w","scrollTo","focus","activeElement","style","outline","history","pushState","smoothScroll","matchMedia","defaultPrevented","button","metaKey","ctrlKey","shiftKey","hostname","hash","preventDefault","replaceState","animateScroll","destroy","removeEventListener","support","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","normalizeValue","iteratorFor","Headers","headers","append","consumed","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","buf","view","Uint8Array","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","rejected","arrayBuffer","readAsText","chars","readArrayBufferAsText","formData","decode","oldValue","methods","Request","upcased","credentials","signal","toUpperCase","referrer","form","bytes","Response","bodyInit","redirectStatuses","redirect","DOMException","stack","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","line","parts","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","onreadystatechange","readyState","send","handleDescriptor","initializer","ret","createDefaultSetter","lazyInitialize","_len","_key","decorate","_class","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_initDefineProp","_applyDecoratedDescriptor","decorators","decorator","entryArgs","isDescriptor","Meta","instance","Constructor","_classCallCheck","META_KEY","metaFor","getOwnKeys","getOwnPropertyDescriptors","descs","seenDeprecations","internalDeprecation","msg","_createClass","props","protoProps","staticProps","FUNCTION_REGEXP","SyntaxErrorReporter","parentKlass","childKlass","parentDescriptor","childDescriptor","topic","_extractFunctionSignature","_this","params","parentPropertySignature","childPropertySignature","_getTopic","_extractTopicSignature","parentTopic","childTopic","condition","_this2","parentNotation","childNotation","SyntaxError","getDescriptorType","checkFunctionSignatures","child","reporter","assert","checkDescriptors","parentType","childType","parentValueType","childValueType","checkDataDescriptors","parentHasGetter","childHasGetter","parentHasSetter","childHasSetter","checkAccessorDescriptors","suggestionTransforms","superKlass","superDescriptor","suggestedKey","suggestion","findPossibleAlternatives","override","_extends","_slicedToArray","_arr","_n","_d","_e","sliceIterator","_ref","_ref2","_ref2$","_ref2$2","methodSignature","deprecate","suppressedWarningNoop","applyWithoutWarnings","nativeWarn","suppressWarnings","toObject","cache","applyAndCache","signature","_metaForDescriptor","wrapKey","metaForDescriptor","argumentCache","WeakMap","signatureCache","primativeRefCache","argumentIdCounter","_defineProperty","argRef","argKey","memoize","_len2","_key2","mapStore","autobindClass","klass","autobindMethod","superStore","getBoundSuper","boundFn","handle","readonly","nonenumerable","nonconfigurable","wait","immediate","_metaFor","debounceTimeoutIds","callNow","debounce","leading","trailing","meta","throttleTimeoutIds","throttlePreviousTimestamps","previous","now","throttleTrailingArgs","throttle","originalGet","originalSet","originalValue","isGetter","hasProperty","handleClass","mixins","mixin","labels","defaultConsole","time","label","timeEnd","timeTaken","prefix","superDesc","extendDescriptor","profile","profileEnd","onceThrottleOrFunction","_ref2$3","__enabled","__warned","profileLastRan","applyDecorators","Class"],"mappings":"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","file":"index.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 = 8);\n","/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest = { exec: function noopTest() {} };\n\nfunction merge(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\nmodule.exports = {\n escape,\n unescape,\n edit,\n cleanUrl,\n resolveUrl,\n noopTest,\n merge,\n splitCells,\n rtrim,\n findClosingBracket,\n checkSanitizeDeprecation\n};\n","function getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n xhtml: false\n };\n}\n\nfunction changeDefaults(newDefaults) {\n module.exports.defaults = newDefaults;\n}\n\nmodule.exports = {\n defaults: getDefaults(),\n getDefaults,\n changeDefaults\n};\n","const { defaults } = require('./defaults.js');\nconst {\n cleanUrl,\n escape\n} = require('./helpers.js');\n\n/**\n * Renderer\n */\nmodule.exports = class Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n };\n\n blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n };\n\n html(html) {\n return html;\n };\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n };\n\n hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\n';\n };\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n };\n\n listitem(text) {\n return '<li>' + text + '</li>\\n';\n };\n\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n };\n\n paragraph(text) {\n return '<p>' + text + '</p>\\n';\n };\n\n table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n };\n\n tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\n';\n };\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '</' + type + '>\\n';\n };\n\n // span level renderer\n strong(text) {\n return '<strong>' + text + '</strong>';\n };\n\n em(text) {\n return '<em>' + text + '</em>';\n };\n\n codespan(text) {\n return '<code>' + text + '</code>';\n };\n\n br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n };\n\n del(text) {\n return '<del>' + text + '</del>';\n };\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n };\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\n return out;\n };\n\n text(text) {\n return text;\n };\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","const {\n noopTest,\n edit,\n merge\n} = require('./helpers.js');\n\n/**\n * Block-Level Grammar\n */\nconst block = {\n newline: /^\\n+/,\n code: /^( {4}[^\\n]+\\n*)+/,\n fences: /^ {0,3}(`{3,}|~{3,})([^`~\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6}) +([^\\n]*?)(?: +#+)? *(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?\\\\?>\\\\n*' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?>\\\\n*' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\\\\n*' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (6)\n + '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) open tag\n + '|</(?!script|pre|style)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *<?([^\\s>]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n nptable: noopTest,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}\\.)/;\nblock.item = /^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/;\nblock.item = edit(block.item, 'gm')\n .replace(/bull/g, block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /<!--(?!-?>)[\\s\\S]*?-->/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} +')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}|~{3,})[^`\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n nptable: /^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,\n table: /^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/\n});\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^ *(#{1,6}) *([^\\n]+?) *(?:#+ *)?(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n strong: /^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,\n em: /^_([^\\s_])_(?!_)|^\\*([^\\s*<\\[])\\*(?!\\*)|^_([^\\s<][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_<][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s<\"][\\s\\S]*?[^\\s\\*])\\*(?!\\*|[^\\spunctuation])|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/,\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*]|\\b_|$)|[^ ](?= {2,}\\n))|(?= {2,}\\n))/\n};\n\n// list of punctuation marks from common mark spec\n// without ` and ] to workaround Rule 17 (inline code blocks/links)\ninline._punctuation = '!\"#$%&\\'()*+,\\\\-./:;<=>?@\\\\[^_{|}~';\ninline.em = edit(inline.em).replace(/punctuation/g, inline._punctuation).getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', block._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[[^\\[\\]]*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n em: /^_(?=\\S)([\\s\\S]*?\\S)_(?!_)|^\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)/,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^~+(?=\\S)([\\s\\S]*?\\S)~+/,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*~]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))|(?= {2,}\\n|[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\nmodule.exports = {\n block,\n inline\n};\n","/**\n * Slugger generates header id\n */\nmodule.exports = class Slugger {\n constructor() {\n this.seen = {};\n }\n\n /**\n * Convert string to unique id\n */\n slug(value) {\n let slug = value\n .toLowerCase()\n .trim()\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n\n if (this.seen.hasOwnProperty(slug)) {\n const originalSlug = slug;\n do {\n this.seen[originalSlug]++;\n slug = originalSlug + '-' + this.seen[originalSlug];\n } while (this.seen.hasOwnProperty(slug));\n }\n this.seen[slug] = 0;\n\n return slug;\n };\n};\n","const Renderer = require('./Renderer.js');\nconst { defaults } = require('./defaults.js');\nconst { inline } = require('./rules.js');\nconst {\n findClosingBracket,\n escape\n} = require('./helpers.js');\n\n/**\n * Inline Lexer & Compiler\n */\nmodule.exports = class InlineLexer {\n constructor(links, options) {\n this.options = options || defaults;\n this.links = links;\n this.rules = inline.normal;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n\n if (!this.links) {\n throw new Error('Tokens array requires a `links` property.');\n }\n\n if (this.options.pedantic) {\n this.rules = inline.pedantic;\n } else if (this.options.gfm) {\n if (this.options.breaks) {\n this.rules = inline.breaks;\n } else {\n this.rules = inline.gfm;\n }\n }\n }\n\n /**\n * Expose Inline Rules\n */\n static get rules() {\n return inline;\n }\n\n /**\n * Static Lexing/Compiling Method\n */\n static output(src, links, options) {\n const inline = new InlineLexer(links, options);\n return inline.output(src);\n }\n\n /**\n * Lexing/Compiling\n */\n output(src) {\n let out = '',\n link,\n text,\n href,\n title,\n cap,\n prevCapZero;\n\n while (src) {\n // escape\n if (cap = this.rules.escape.exec(src)) {\n src = src.substring(cap[0].length);\n out += escape(cap[1]);\n continue;\n }\n\n // tag\n if (cap = this.rules.tag.exec(src)) {\n if (!this.inLink && /^<a /i.test(cap[0])) {\n this.inLink = true;\n } else if (this.inLink && /^<\\/a>/i.test(cap[0])) {\n this.inLink = false;\n }\n if (!this.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = true;\n } else if (this.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = false;\n }\n\n src = src.substring(cap[0].length);\n out += this.options.sanitize\n ? this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0])\n : cap[0];\n continue;\n }\n\n // link\n if (cap = this.rules.link.exec(src)) {\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n src = src.substring(cap[0].length);\n this.inLink = true;\n href = cap[2];\n if (this.options.pedantic) {\n link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n } else {\n title = '';\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim().replace(/^<([\\s\\S]*)>$/, '$1');\n out += this.outputLink(cap, {\n href: InlineLexer.escapes(href),\n title: InlineLexer.escapes(title)\n });\n this.inLink = false;\n continue;\n }\n\n // reflink, nolink\n if ((cap = this.rules.reflink.exec(src))\n || (cap = this.rules.nolink.exec(src))) {\n src = src.substring(cap[0].length);\n link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = this.links[link.toLowerCase()];\n if (!link || !link.href) {\n out += cap[0].charAt(0);\n src = cap[0].substring(1) + src;\n continue;\n }\n this.inLink = true;\n out += this.outputLink(cap, link);\n this.inLink = false;\n continue;\n }\n\n // strong\n if (cap = this.rules.strong.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.strong(this.output(cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // em\n if (cap = this.rules.em.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.em(this.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.codespan(escape(cap[2].trim(), true));\n continue;\n }\n\n // br\n if (cap = this.rules.br.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.br();\n continue;\n }\n\n // del (gfm)\n if (cap = this.rules.del.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.del(this.output(cap[1]));\n continue;\n }\n\n // autolink\n if (cap = this.rules.autolink.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[2] === '@') {\n text = escape(this.mangle(cap[1]));\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // url (gfm)\n if (!this.inLink && (cap = this.rules.url.exec(src))) {\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n src = src.substring(cap[0].length);\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n src = src.substring(cap[0].length);\n if (this.inRawBlock) {\n out += this.renderer.text(this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]);\n } else {\n out += this.renderer.text(escape(this.smartypants(cap[0])));\n }\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return out;\n }\n\n static escapes(text) {\n return text ? text.replace(InlineLexer.rules._escapes, '$1') : text;\n }\n\n /**\n * Compile Link\n */\n outputLink(cap, link) {\n const href = link.href,\n title = link.title ? escape(link.title) : null;\n\n return cap[0].charAt(0) !== '!'\n ? this.renderer.link(href, title, this.output(cap[1]))\n : this.renderer.image(href, title, escape(cap[1]));\n }\n\n /**\n * Smartypants Transformations\n */\n smartypants(text) {\n if (!this.options.smartypants) return text;\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n }\n\n /**\n * Mangle Links\n */\n mangle(text) {\n if (!this.options.mangle) return text;\n const l = text.length;\n let out = '',\n i = 0,\n ch;\n\n for (; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n }\n};\n","/**\n * TextRenderer\n * returns only the textual part of the token\n */\nmodule.exports = class TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n};\n","import 'bootstrap/dist/css/bootstrap.min.css';\r\nimport { autobind } from 'core-decorators';\r\nimport * as DOMPurify from 'dompurify';\r\nimport 'es6-shim';\r\nimport * as marked from 'marked';\r\nimport * as SmoothScroll from 'smooth-scroll';\r\nimport 'typeface-roboto-condensed';\r\nimport 'whatwg-fetch';\r\nimport { IGetInfoResponse } from '../services/info.service';\r\n\r\n// API home page and documentation\r\nclass DocsPage {\r\n // Initialises the page once DOM is ready\r\n @autobind\r\n public async init(): Promise<void> {\r\n // Enable resonsive menu\r\n this.enableMenu();\r\n\r\n // Check service status\r\n this.checkStatus();\r\n\r\n // Enable smooth scrolling of page links\r\n const scroll = new SmoothScroll('a[href*=\"#\"]', {\r\n updateURL: false\r\n });\r\n }\r\n\r\n private async checkStatus() {\r\n const serviceInfoEl = document.querySelector('.serviceinfo');\r\n const versionEl = document.querySelector('#version');\r\n const currentStatusEl = document.querySelector('#currentstatus');\r\n const serverMessageEl = document.querySelector('#servermessage');\r\n\r\n // Display current status and version for this xBrowserSync service\r\n try {\r\n const response = await fetch(`${location.pathname}info`);\r\n if (!response.ok) {\r\n throw new Error(response.statusText);\r\n }\r\n\r\n // Display service info block\r\n serviceInfoEl.classList.remove('offline');\r\n\r\n const apiInfo: IGetInfoResponse = await response.json();\r\n if (apiInfo) {\r\n versionEl.textContent = apiInfo.version;\r\n\r\n // If the server has configured a message, display it\r\n if (apiInfo.message) {\r\n serverMessageEl.innerHTML = DOMPurify.sanitize(marked(apiInfo.message));\r\n }\r\n }\r\n\r\n switch (apiInfo.status) {\r\n case 1:\r\n currentStatusEl.textContent = 'Online';\r\n currentStatusEl.className = 'text-success';\r\n break;\r\n case 3:\r\n currentStatusEl.textContent = 'Not accepting new syncs';\r\n currentStatusEl.className = 'text-warning';\r\n break;\r\n default:\r\n case 2:\r\n currentStatusEl.textContent = 'Offline';\r\n currentStatusEl.className = 'text-danger';\r\n break;\r\n }\r\n }\r\n catch (err) {\r\n currentStatusEl.textContent = 'Offline';\r\n currentStatusEl.className = 'text-danger';\r\n console.error(err);\r\n }\r\n }\r\n\r\n private enableMenu() {\r\n const toggle = document.querySelector<HTMLButtonElement>('.nav-menu-button');\r\n const navbar = document.querySelector('nav');\r\n\r\n const toggleMenu = () => {\r\n // Toggle menu display and menu button hide\r\n if (navbar.classList.contains('open')) {\r\n navbar.classList.remove('open');\r\n toggle.classList.remove('hide');\r\n document.body.classList.remove('noscroll');\r\n }\r\n else {\r\n navbar.classList.add('open');\r\n toggle.classList.add('hide');\r\n document.body.classList.add('noscroll');\r\n }\r\n };\r\n\r\n // Enable menu button\r\n toggle.addEventListener('click', e => {\r\n toggleMenu();\r\n });\r\n\r\n // Hide menu when nav link is clicked\r\n const navbarLinks = navbar.querySelectorAll('a');\r\n Array.from(navbarLinks).forEach(link => {\r\n link.addEventListener('click', e => {\r\n toggleMenu();\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst docsPage = new DocsPage();\r\ndocument.addEventListener('DOMContentLoaded', docsPage.init);","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.DOMPurify = factory());\n}(this, (function () { 'use strict';\n\nvar freeze$1 = Object.freeze || function (x) {\n return x;\n};\n\nvar html = freeze$1(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n// SVG\nvar svg = freeze$1(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'audio', 'canvas', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'video', 'view', 'vkern']);\n\nvar svgFilters = freeze$1(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\nvar mathMl = freeze$1(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\nvar text = freeze$1(['#text']);\n\nvar freeze$2 = Object.freeze || function (x) {\n return x;\n};\n\nvar html$1 = freeze$2(['accept', 'action', 'align', 'alt', 'autocomplete', 'background', 'bgcolor', 'border', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'coords', 'crossorigin', 'datetime', 'default', 'dir', 'disabled', 'download', 'enctype', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'integrity', 'ismap', 'label', 'lang', 'list', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns']);\n\nvar svg$1 = freeze$2(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\nvar mathMl$1 = freeze$2(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\nvar xml = freeze$2(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nvar hasOwnProperty = Object.hasOwnProperty;\nvar setPrototypeOf = Object.setPrototypeOf;\n\nvar _ref$1 = typeof Reflect !== 'undefined' && Reflect;\nvar apply$1 = _ref$1.apply;\n\nif (!apply$1) {\n apply$1 = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\n/* Add properties to a lookup table */\nfunction addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = element.toLowerCase();\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!Object.isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/* Shallow clone an object */\nfunction clone(object) {\n var newObject = {};\n\n var property = void 0;\n for (property in object) {\n if (apply$1(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n}\n\nvar seal = Object.seal || function (x) {\n return x;\n};\n\nvar MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nvar ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\nvar DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nvar ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nvar IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nvar IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nvar ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g // eslint-disable-line no-control-regex\n);\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar _ref = typeof Reflect !== 'undefined' && Reflect;\nvar apply = _ref.apply;\n\nvar arraySlice = Array.prototype.slice;\nvar freeze = Object.freeze;\n\nvar getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nvar _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (error) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\n\nfunction createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.0.7';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var useDOMParser = false;\n var removeTitle = false;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n TrustedTypes = window.TrustedTypes;\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(TrustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n getElementsByTagName = _document.getElementsByTagName,\n createDocumentFragment = _document.createDocumentFragment;\n var importNode = originalDocument.importNode;\n\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = implementation && typeof implementation.createHTMLDocument !== 'undefined' && document.documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(svgFilters), _toConsumableArray(mathMl), _toConsumableArray(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(mathMl$1), _toConsumableArray(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for jQuery's $() factory? */\n var SAFE_FOR_JQUERY = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify. */\n var RETURN_DOM_IMPORT = false;\n\n /* Try to return a Trusted Type object instead of a string, retrun a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_JQUERY = cfg.SAFE_FOR_JQUERY || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n DOMPurify.removed.push({ element: node });\n try {\n node.parentNode.removeChild(node);\n } catch (error) {\n node.outerHTML = emptyHTML;\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n DOMPurify.removed.push({\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (error) {\n DOMPurify.removed.push({\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = dirty.match(/^[\\s]+/);\n leadingWhitespace = matches && matches[0];\n if (leadingWhitespace) {\n dirty = dirty.slice(leadingWhitespace.length);\n }\n }\n\n /* Use DOMParser to workaround Firefox bug (see comment below) */\n if (useDOMParser) {\n try {\n doc = new DOMParser().parseFromString(dirty, 'text/html');\n } catch (error) {}\n }\n\n /* Remove title to fix a mXSS bug in older MS Edge */\n if (removeTitle) {\n addToSet(FORBID_TAGS, ['title']);\n }\n\n /* Otherwise use createHTMLDocument, because DOMParser is unsafe in\n Safari (see comment below) */\n if (!doc || !doc.documentElement) {\n doc = implementation.createHTMLDocument('');\n var _doc = doc,\n body = _doc.body;\n\n body.parentNode.removeChild(body.parentNode.firstElementChild);\n body.outerHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n if (dirty && leadingWhitespace) {\n doc.body.insertBefore(document.createTextNode(leadingWhitespace), doc.body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n };\n\n // Firefox uses a different parser for innerHTML rather than\n // DOMParser (see https://bugzilla.mozilla.org/show_bug.cgi?id=1205631)\n // which means that you *must* use DOMParser, otherwise the output may\n // not be safe if used in a document.write context later.\n //\n // So we feature detect the Firefox bug and use the DOMParser if necessary.\n //\n // Chrome 77 and other versions ship an mXSS bug that caused a bypass to\n // happen. We now check for the mXSS trigger and react accordingly.\n if (DOMPurify.isSupported) {\n (function () {\n try {\n var doc = _initDocument('<svg><p><textarea><img src=\"</textarea><img src=x abc=1//\">');\n if (doc.querySelector('svg img')) {\n useDOMParser = true;\n }\n } catch (error) {}\n })();\n\n (function () {\n try {\n var doc = _initDocument('<x/><title></title><img>');\n if (/<\\/title/.test(doc.querySelector('title').innerHTML)) {\n removeTitle = true;\n }\n } catch (error) {}\n })();\n }\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, function () {\n return NodeFilter.FILTER_ACCEPT;\n }, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(obj) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? obj instanceof Node : obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n hooks[entryPoint].forEach(function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n // eslint-disable-next-line complexity\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = currentNode.nodeName.toLowerCase();\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Take care of an mXSS pattern using p, br inside svg, math */\n if ((tagName === 'svg' || tagName === 'math') && currentNode.querySelectorAll('p, br').length !== 0) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for black-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName] && typeof currentNode.insertAdjacentHTML === 'function') {\n try {\n var htmlToInsert = currentNode.innerHTML;\n currentNode.insertAdjacentHTML('AfterEnd', trustedTypesPolicy ? trustedTypesPolicy.createHTML(htmlToInsert) : htmlToInsert);\n } catch (error) {}\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove in case a noscript/noembed XSS is suspected */\n if (tagName === 'noscript' && /<\\/noscript/i.test(currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if (tagName === 'noembed' && /<\\/noembed/i.test(currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Convert markup to cover jQuery behavior */\n if (SAFE_FOR_JQUERY && !currentNode.firstElementChild && (!currentNode.content || !currentNode.content.firstElementChild) && /</g.test(currentNode.textContent)) {\n DOMPurify.removed.push({ element: currentNode.cloneNode() });\n if (currentNode.innerHTML) {\n currentNode.innerHTML = currentNode.innerHTML.replace(/</g, '<');\n } else {\n currentNode.innerHTML = currentNode.textContent.replace(/</g, '<');\n }\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = content.replace(MUSTACHE_EXPR$$1, ' ');\n content = content.replace(ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n DOMPurify.removed.push({ element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && DATA_ATTR$$1.test(lcName)) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && ARIA_ATTR$$1.test(lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (IS_ALLOWED_URI$$1.test(value.replace(ATTR_WHITESPACE$$1, ''))) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && value.indexOf('data:') === 0 && DATA_URI_TAGS[lcTag]) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (ALLOW_UNKNOWN_PROTOCOLS && !IS_SCRIPT_OR_DATA$$1.test(value.replace(ATTR_WHITESPACE$$1, ''))) {\n // This attribute is safe\n /* Check for binary attributes */\n // eslint-disable-next-line no-negated-condition\n } else if (!value) {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n } else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n // eslint-disable-next-line complexity\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var idAttr = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = attr.value.trim();\n lcName = name.toLowerCase();\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Remove attribute */\n // Safari (iOS + Mac), last tested v8.0.5, crashes if you try to\n // remove a \"name\" attribute from an <img> tag that has an \"id\"\n // attribute at the time.\n if (lcName === 'name' && currentNode.nodeName === 'IMG' && attributes.id) {\n idAttr = attributes.id;\n attributes = apply(arraySlice, attributes, []);\n _removeAttribute('id', currentNode);\n _removeAttribute(name, currentNode);\n if (attributes.indexOf(idAttr) > l) {\n currentNode.setAttribute('id', idAttr.value);\n }\n } else if (\n // This works around a bug in Safari, where input[type=file]\n // cannot be dynamically set after type has been removed\n currentNode.nodeName === 'INPUT' && lcName === 'type' && value === 'file' && hookEvent.keepAttr && (ALLOWED_ATTR[lcName] || !FORBID_ATTR[lcName])) {\n continue;\n } else {\n // This avoids a crash in Safari v9.0 with double-ids.\n // The trick is to first set the id to be empty and then to\n // remove the attribute\n if (name === 'id') {\n currentNode.setAttribute(name, '');\n }\n\n _removeAttribute(name, currentNode);\n }\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Take care of an mXSS pattern using namespace switches */\n if (/svg|math/i.test(currentNode.namespaceURI) && new RegExp('</(' + Object.keys(FORBID_CONTENTS).join('|') + ')', 'i').test(value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = value.replace(MUSTACHE_EXPR$$1, ' ');\n value = value.replace(ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = currentNode.nodeName.toLowerCase();\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n DOMPurify.removed.pop();\n } catch (error) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n if (!dirty) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw new TypeError('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw new TypeError('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n if (IN_PLACE) {\n /* No special handling necessary for in-place sanitization */\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!-->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && RETURN_TRUSTED_TYPE && dirty.indexOf('<') === -1) {\n return trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /* AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs. */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = serializedHTML.replace(MUSTACHE_EXPR$$1, ' ');\n serializedHTML = serializedHTML.replace(ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = tag.toLowerCase();\n var lcName = attr.toLowerCase();\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n hooks[entryPoint].push(hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint].pop();\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nvar purify = createDOMPurify();\n\nreturn purify;\n\n})));\n//# sourceMappingURL=purify.js.map\n","/*!\n * https://github.com/paulmillr/es6-shim\n * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com)\n * and contributors, MIT License\n * es6-shim: v0.35.4\n * see https://github.com/paulmillr/es6-shim/blob/0.35.3/LICENSE\n * Details and documentation:\n * https://github.com/paulmillr/es6-shim/\n */\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/returnExports.js\n(function (root, factory) {\n /*global define, module, exports */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n}(this, function () {\n 'use strict';\n\n var _apply = Function.call.bind(Function.apply);\n var _call = Function.call.bind(Function.call);\n var isArray = Array.isArray;\n var keys = Object.keys;\n\n var not = function notThunker(func) {\n return function notThunk() {\n return !_apply(func, this, arguments);\n };\n };\n var throwsError = function (func) {\n try {\n func();\n return false;\n } catch (e) {\n return true;\n }\n };\n var valueOrFalseIfThrows = function valueOrFalseIfThrows(func) {\n try {\n return func();\n } catch (e) {\n return false;\n }\n };\n\n var isCallableWithoutNew = not(throwsError);\n var arePropertyDescriptorsSupported = function () {\n // if Object.defineProperty exists but throws, it's IE 8\n return !throwsError(function () {\n return Object.defineProperty({}, 'x', { get: function () { } }); // eslint-disable-line getter-return\n });\n };\n var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported();\n var functionsHaveNames = (function foo() {}).name === 'foo'; // eslint-disable-line no-extra-parens\n\n var _forEach = Function.call.bind(Array.prototype.forEach);\n var _reduce = Function.call.bind(Array.prototype.reduce);\n var _filter = Function.call.bind(Array.prototype.filter);\n var _some = Function.call.bind(Array.prototype.some);\n\n var defineProperty = function (object, name, value, force) {\n if (!force && name in object) { return; }\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n // Define configurable, writable and non-enumerable props\n // if they don’t exist.\n var defineProperties = function (object, map, forceOverride) {\n _forEach(keys(map), function (name) {\n var method = map[name];\n defineProperty(object, name, method, !!forceOverride);\n });\n };\n\n var _toString = Function.call.bind(Object.prototype.toString);\n var isCallable = typeof /abc/ === 'function' ? function IsCallableSlow(x) {\n // Some old browsers (IE, FF) say that typeof /abc/ === 'function'\n return typeof x === 'function' && _toString(x) === '[object Function]';\n } : function IsCallableFast(x) { return typeof x === 'function'; };\n\n var Value = {\n getter: function (object, name, getter) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n get: getter\n });\n },\n proxy: function (originalObject, key, targetObject) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key);\n Object.defineProperty(targetObject, key, {\n configurable: originalDescriptor.configurable,\n enumerable: originalDescriptor.enumerable,\n get: function getKey() { return originalObject[key]; },\n set: function setKey(value) { originalObject[key] = value; }\n });\n },\n redefine: function (object, property, newValue) {\n if (supportsDescriptors) {\n var descriptor = Object.getOwnPropertyDescriptor(object, property);\n descriptor.value = newValue;\n Object.defineProperty(object, property, descriptor);\n } else {\n object[property] = newValue;\n }\n },\n defineByDescriptor: function (object, property, descriptor) {\n if (supportsDescriptors) {\n Object.defineProperty(object, property, descriptor);\n } else if ('value' in descriptor) {\n object[property] = descriptor.value;\n }\n },\n preserveToString: function (target, source) {\n if (source && isCallable(source.toString)) {\n defineProperty(target, 'toString', source.toString.bind(source), true);\n }\n }\n };\n\n // Simple shim for Object.create on ES3 browsers\n // (unlike real shim, no attempt to support `prototype === null`)\n var create = Object.create || function (prototype, properties) {\n var Prototype = function Prototype() {};\n Prototype.prototype = prototype;\n var object = new Prototype();\n if (typeof properties !== 'undefined') {\n keys(properties).forEach(function (key) {\n Value.defineByDescriptor(object, key, properties[key]);\n });\n }\n return object;\n };\n\n var supportsSubclassing = function (C, f) {\n if (!Object.setPrototypeOf) { return false; /* skip test on IE < 11 */ }\n return valueOrFalseIfThrows(function () {\n var Sub = function Subclass(arg) {\n var o = new C(arg);\n Object.setPrototypeOf(o, Subclass.prototype);\n return o;\n };\n Object.setPrototypeOf(Sub, C);\n Sub.prototype = create(C.prototype, {\n constructor: { value: Sub }\n });\n return f(Sub);\n });\n };\n\n var getGlobal = function () {\n /* global self, window, global */\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n };\n\n var globals = getGlobal();\n var globalIsFinite = globals.isFinite;\n var _indexOf = Function.call.bind(String.prototype.indexOf);\n var _arrayIndexOfApply = Function.apply.bind(Array.prototype.indexOf);\n var _concat = Function.call.bind(Array.prototype.concat);\n // var _sort = Function.call.bind(Array.prototype.sort);\n var _strSlice = Function.call.bind(String.prototype.slice);\n var _push = Function.call.bind(Array.prototype.push);\n var _pushApply = Function.apply.bind(Array.prototype.push);\n var _shift = Function.call.bind(Array.prototype.shift);\n var _max = Math.max;\n var _min = Math.min;\n var _floor = Math.floor;\n var _abs = Math.abs;\n var _exp = Math.exp;\n var _log = Math.log;\n var _sqrt = Math.sqrt;\n var _hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n var ArrayIterator; // make our implementation private\n var noop = function () {};\n\n var OrigMap = globals.Map;\n var origMapDelete = OrigMap && OrigMap.prototype['delete'];\n var origMapGet = OrigMap && OrigMap.prototype.get;\n var origMapHas = OrigMap && OrigMap.prototype.has;\n var origMapSet = OrigMap && OrigMap.prototype.set;\n\n var Symbol = globals.Symbol || {};\n var symbolSpecies = Symbol.species || '@@species';\n\n var numberIsNaN = Number.isNaN || function isNaN(value) {\n // NaN !== NaN, but they are identical.\n // NaNs are the only non-reflexive value, i.e., if x !== x,\n // then x is NaN.\n // isNaN is broken: it converts its argument to number, so\n // isNaN('foo') => true\n return value !== value;\n };\n var numberIsFinite = Number.isFinite || function isFinite(value) {\n return typeof value === 'number' && globalIsFinite(value);\n };\n var _sign = isCallable(Math.sign) ? Math.sign : function sign(value) {\n var number = Number(value);\n if (number === 0) { return number; }\n if (numberIsNaN(number)) { return number; }\n return number < 0 ? -1 : 1;\n };\n var _log1p = function log1p(value) {\n var x = Number(value);\n if (x < -1 || numberIsNaN(x)) { return NaN; }\n if (x === 0 || x === Infinity) { return x; }\n if (x === -1) { return -Infinity; }\n\n return (1 + x) - 1 === 0 ? x : x * (_log(1 + x) / ((1 + x) - 1));\n };\n\n // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n // can be replaced with require('is-arguments') if we ever use a build process instead\n var isStandardArguments = function isArguments(value) {\n return _toString(value) === '[object Arguments]';\n };\n var isLegacyArguments = function isArguments(value) {\n return value !== null &&\n typeof value === 'object' &&\n typeof value.length === 'number' &&\n value.length >= 0 &&\n _toString(value) !== '[object Array]' &&\n _toString(value.callee) === '[object Function]';\n };\n var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n\n var Type = {\n primitive: function (x) { return x === null || (typeof x !== 'function' && typeof x !== 'object'); },\n string: function (x) { return _toString(x) === '[object String]'; },\n regex: function (x) { return _toString(x) === '[object RegExp]'; },\n symbol: function (x) {\n return typeof globals.Symbol === 'function' && typeof x === 'symbol';\n }\n };\n\n var overrideNative = function overrideNative(object, property, replacement) {\n var original = object[property];\n defineProperty(object, property, replacement, true);\n Value.preserveToString(object[property], original);\n };\n\n // eslint-disable-next-line no-restricted-properties\n var hasSymbols = typeof Symbol === 'function' && typeof Symbol['for'] === 'function' && Type.symbol(Symbol());\n\n // This is a private name in the es6 spec, equal to '[Symbol.iterator]'\n // we're going to use an arbitrary _-prefixed name to make our shims\n // work properly with each other, even though we don't have full Iterator\n // support. That is, `Array.from(map.keys())` will work, but we don't\n // pretend to export a \"real\" Iterator interface.\n var $iterator$ = Type.symbol(Symbol.iterator) ? Symbol.iterator : '_es6-shim iterator_';\n // Firefox ships a partial implementation using the name @@iterator.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14\n // So use that name if we detect it.\n if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') {\n $iterator$ = '@@iterator';\n }\n\n // Reflect\n if (!globals.Reflect) {\n defineProperty(globals, 'Reflect', {}, true);\n }\n var Reflect = globals.Reflect;\n\n var $String = String;\n\n /* global document */\n var domAll = (typeof document === 'undefined' || !document) ? null : document.all;\n var isNullOrUndefined = domAll == null ? function isNullOrUndefined(x) {\n return x == null;\n } : function isNullOrUndefinedAndNotDocumentAll(x) {\n return x == null && x !== domAll;\n };\n\n var ES = {\n // http://www.ecma-international.org/ecma-262/6.0/#sec-call\n Call: function Call(F, V) {\n var args = arguments.length > 2 ? arguments[2] : [];\n if (!ES.IsCallable(F)) {\n throw new TypeError(F + ' is not a function');\n }\n return _apply(F, V, args);\n },\n\n RequireObjectCoercible: function (x, optMessage) {\n if (isNullOrUndefined(x)) {\n throw new TypeError(optMessage || 'Cannot call method on ' + x);\n }\n return x;\n },\n\n // This might miss the \"(non-standard exotic and does not implement\n // [[Call]])\" case from\n // http://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator-runtime-semantics-evaluation\n // but we can't find any evidence these objects exist in practice.\n // If we find some in the future, you could test `Object(x) === x`,\n // which is reliable according to\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toobject\n // but is not well optimized by runtimes and creates an object\n // whenever it returns false, and thus is very slow.\n TypeIsObject: function (x) {\n if (x === void 0 || x === null || x === true || x === false) {\n return false;\n }\n return typeof x === 'function' || typeof x === 'object' || x === domAll;\n },\n\n ToObject: function (o, optMessage) {\n return Object(ES.RequireObjectCoercible(o, optMessage));\n },\n\n IsCallable: isCallable,\n\n IsConstructor: function (x) {\n // We can't tell callables from constructors in ES5\n return ES.IsCallable(x);\n },\n\n ToInt32: function (x) {\n return ES.ToNumber(x) >> 0;\n },\n\n ToUint32: function (x) {\n return ES.ToNumber(x) >>> 0;\n },\n\n ToNumber: function (value) {\n if (_toString(value) === '[object Symbol]') {\n throw new TypeError('Cannot convert a Symbol value to a number');\n }\n return +value;\n },\n\n ToInteger: function (value) {\n var number = ES.ToNumber(value);\n if (numberIsNaN(number)) { return 0; }\n if (number === 0 || !numberIsFinite(number)) { return number; }\n return (number > 0 ? 1 : -1) * _floor(_abs(number));\n },\n\n ToLength: function (value) {\n var len = ES.ToInteger(value);\n if (len <= 0) { return 0; } // includes converting -0 to +0\n if (len > Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER; }\n return len;\n },\n\n SameValue: function (a, b) {\n if (a === b) {\n // 0 === -0, but they are not identical.\n if (a === 0) { return 1 / a === 1 / b; }\n return true;\n }\n return numberIsNaN(a) && numberIsNaN(b);\n },\n\n SameValueZero: function (a, b) {\n // same as SameValue except for SameValueZero(+0, -0) == true\n return (a === b) || (numberIsNaN(a) && numberIsNaN(b));\n },\n\n IsIterable: function (o) {\n return ES.TypeIsObject(o) && (typeof o[$iterator$] !== 'undefined' || isArguments(o));\n },\n\n GetIterator: function (o) {\n if (isArguments(o)) {\n // special case support for `arguments`\n return new ArrayIterator(o, 'value');\n }\n var itFn = ES.GetMethod(o, $iterator$);\n if (!ES.IsCallable(itFn)) {\n // Better diagnostics if itFn is null or undefined\n throw new TypeError('value is not an iterable');\n }\n var it = ES.Call(itFn, o);\n if (!ES.TypeIsObject(it)) {\n throw new TypeError('bad iterator');\n }\n return it;\n },\n\n GetMethod: function (o, p) {\n var func = ES.ToObject(o)[p];\n if (isNullOrUndefined(func)) {\n return void 0;\n }\n if (!ES.IsCallable(func)) {\n throw new TypeError('Method not callable: ' + p);\n }\n return func;\n },\n\n IteratorComplete: function (iterResult) {\n return !!iterResult.done;\n },\n\n IteratorClose: function (iterator, completionIsThrow) {\n var returnMethod = ES.GetMethod(iterator, 'return');\n if (returnMethod === void 0) {\n return;\n }\n var innerResult, innerException;\n try {\n innerResult = ES.Call(returnMethod, iterator);\n } catch (e) {\n innerException = e;\n }\n if (completionIsThrow) {\n return;\n }\n if (innerException) {\n throw innerException;\n }\n if (!ES.TypeIsObject(innerResult)) {\n throw new TypeError(\"Iterator's return method returned a non-object.\");\n }\n },\n\n IteratorNext: function (it) {\n var result = arguments.length > 1 ? it.next(arguments[1]) : it.next();\n if (!ES.TypeIsObject(result)) {\n throw new TypeError('bad iterator');\n }\n return result;\n },\n\n IteratorStep: function (it) {\n var result = ES.IteratorNext(it);\n var done = ES.IteratorComplete(result);\n return done ? false : result;\n },\n\n Construct: function (C, args, newTarget, isES6internal) {\n var target = typeof newTarget === 'undefined' ? C : newTarget;\n\n if (!isES6internal && Reflect.construct) {\n // Try to use Reflect.construct if available\n return Reflect.construct(C, args, target);\n }\n // OK, we have to fake it. This will only work if the\n // C.[[ConstructorKind]] == \"base\" -- but that's the only\n // kind we can make in ES5 code anyway.\n\n // OrdinaryCreateFromConstructor(target, \"%ObjectPrototype%\")\n var proto = target.prototype;\n if (!ES.TypeIsObject(proto)) {\n proto = Object.prototype;\n }\n var obj = create(proto);\n // Call the constructor.\n var result = ES.Call(C, obj, args);\n return ES.TypeIsObject(result) ? result : obj;\n },\n\n SpeciesConstructor: function (O, defaultConstructor) {\n var C = O.constructor;\n if (C === void 0) {\n return defaultConstructor;\n }\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad constructor');\n }\n var S = C[symbolSpecies];\n if (isNullOrUndefined(S)) {\n return defaultConstructor;\n }\n if (!ES.IsConstructor(S)) {\n throw new TypeError('Bad @@species');\n }\n return S;\n },\n\n CreateHTML: function (string, tag, attribute, value) {\n var S = ES.ToString(string);\n var p1 = '<' + tag;\n if (attribute !== '') {\n var V = ES.ToString(value);\n var escapedV = V.replace(/\"/g, '"');\n p1 += ' ' + attribute + '=\"' + escapedV + '\"';\n }\n var p2 = p1 + '>';\n var p3 = p2 + S;\n return p3 + '</' + tag + '>';\n },\n\n IsRegExp: function IsRegExp(argument) {\n if (!ES.TypeIsObject(argument)) {\n return false;\n }\n var isRegExp = argument[Symbol.match];\n if (typeof isRegExp !== 'undefined') {\n return !!isRegExp;\n }\n return Type.regex(argument);\n },\n\n ToString: function ToString(string) {\n return $String(string);\n }\n };\n\n // Well-known Symbol shims\n if (supportsDescriptors && hasSymbols) {\n var defineWellKnownSymbol = function defineWellKnownSymbol(name) {\n if (Type.symbol(Symbol[name])) {\n return Symbol[name];\n }\n // eslint-disable-next-line no-restricted-properties\n var sym = Symbol['for']('Symbol.' + name);\n Object.defineProperty(Symbol, name, {\n configurable: false,\n enumerable: false,\n writable: false,\n value: sym\n });\n return sym;\n };\n if (!Type.symbol(Symbol.search)) {\n var symbolSearch = defineWellKnownSymbol('search');\n var originalSearch = String.prototype.search;\n defineProperty(RegExp.prototype, symbolSearch, function search(string) {\n return ES.Call(originalSearch, string, [this]);\n });\n var searchShim = function search(regexp) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(regexp)) {\n var searcher = ES.GetMethod(regexp, symbolSearch);\n if (typeof searcher !== 'undefined') {\n return ES.Call(searcher, regexp, [O]);\n }\n }\n return ES.Call(originalSearch, O, [ES.ToString(regexp)]);\n };\n overrideNative(String.prototype, 'search', searchShim);\n }\n if (!Type.symbol(Symbol.replace)) {\n var symbolReplace = defineWellKnownSymbol('replace');\n var originalReplace = String.prototype.replace;\n defineProperty(RegExp.prototype, symbolReplace, function replace(string, replaceValue) {\n return ES.Call(originalReplace, string, [this, replaceValue]);\n });\n var replaceShim = function replace(searchValue, replaceValue) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(searchValue)) {\n var replacer = ES.GetMethod(searchValue, symbolReplace);\n if (typeof replacer !== 'undefined') {\n return ES.Call(replacer, searchValue, [O, replaceValue]);\n }\n }\n return ES.Call(originalReplace, O, [ES.ToString(searchValue), replaceValue]);\n };\n overrideNative(String.prototype, 'replace', replaceShim);\n }\n if (!Type.symbol(Symbol.split)) {\n var symbolSplit = defineWellKnownSymbol('split');\n var originalSplit = String.prototype.split;\n defineProperty(RegExp.prototype, symbolSplit, function split(string, limit) {\n return ES.Call(originalSplit, string, [this, limit]);\n });\n var splitShim = function split(separator, limit) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(separator)) {\n var splitter = ES.GetMethod(separator, symbolSplit);\n if (typeof splitter !== 'undefined') {\n return ES.Call(splitter, separator, [O, limit]);\n }\n }\n return ES.Call(originalSplit, O, [ES.ToString(separator), limit]);\n };\n overrideNative(String.prototype, 'split', splitShim);\n }\n var symbolMatchExists = Type.symbol(Symbol.match);\n var stringMatchIgnoresSymbolMatch = symbolMatchExists && (function () {\n // Firefox 41, through Nightly 45 has Symbol.match, but String#match ignores it.\n // Firefox 40 and below have Symbol.match but String#match works fine.\n var o = {};\n o[Symbol.match] = function () { return 42; };\n return 'a'.match(o) !== 42;\n }());\n if (!symbolMatchExists || stringMatchIgnoresSymbolMatch) {\n var symbolMatch = defineWellKnownSymbol('match');\n\n var originalMatch = String.prototype.match;\n defineProperty(RegExp.prototype, symbolMatch, function match(string) {\n return ES.Call(originalMatch, string, [this]);\n });\n\n var matchShim = function match(regexp) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(regexp)) {\n var matcher = ES.GetMethod(regexp, symbolMatch);\n if (typeof matcher !== 'undefined') {\n return ES.Call(matcher, regexp, [O]);\n }\n }\n return ES.Call(originalMatch, O, [ES.ToString(regexp)]);\n };\n overrideNative(String.prototype, 'match', matchShim);\n }\n }\n\n var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) {\n Value.preserveToString(replacement, original);\n if (Object.setPrototypeOf) {\n // sets up proper prototype chain where possible\n Object.setPrototypeOf(original, replacement);\n }\n if (supportsDescriptors) {\n _forEach(Object.getOwnPropertyNames(original), function (key) {\n if (key in noop || keysToSkip[key]) { return; }\n Value.proxy(original, key, replacement);\n });\n } else {\n _forEach(Object.keys(original), function (key) {\n if (key in noop || keysToSkip[key]) { return; }\n replacement[key] = original[key];\n });\n }\n replacement.prototype = original.prototype;\n Value.redefine(original.prototype, 'constructor', replacement);\n };\n\n var defaultSpeciesGetter = function () { return this; };\n var addDefaultSpecies = function (C) {\n if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) {\n Value.getter(C, symbolSpecies, defaultSpeciesGetter);\n }\n };\n\n var addIterator = function (prototype, impl) {\n var implementation = impl || function iterator() { return this; };\n defineProperty(prototype, $iterator$, implementation);\n if (!prototype[$iterator$] && Type.symbol($iterator$)) {\n // implementations are buggy when $iterator$ is a Symbol\n prototype[$iterator$] = implementation;\n }\n };\n\n var createDataProperty = function createDataProperty(object, name, value) {\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) {\n createDataProperty(object, name, value);\n if (!ES.SameValue(object[name], value)) {\n throw new TypeError('property is nonconfigurable');\n }\n };\n\n var emulateES6construct = function (o, defaultNewTarget, defaultProto, slots) {\n // This is an es5 approximation to es6 construct semantics. in es6,\n // 'new Foo' invokes Foo.[[Construct]] which (for almost all objects)\n // just sets the internal variable NewTarget (in es6 syntax `new.target`)\n // to Foo and then returns Foo().\n\n // Many ES6 object then have constructors of the form:\n // 1. If NewTarget is undefined, throw a TypeError exception\n // 2. Let xxx by OrdinaryCreateFromConstructor(NewTarget, yyy, zzz)\n\n // So we're going to emulate those first two steps.\n if (!ES.TypeIsObject(o)) {\n throw new TypeError('Constructor requires `new`: ' + defaultNewTarget.name);\n }\n var proto = defaultNewTarget.prototype;\n if (!ES.TypeIsObject(proto)) {\n proto = defaultProto;\n }\n var obj = create(proto);\n for (var name in slots) {\n if (_hasOwnProperty(slots, name)) {\n var value = slots[name];\n defineProperty(obj, name, value, true);\n }\n }\n return obj;\n };\n\n // Firefox 31 reports this function's length as 0\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1062484\n if (String.fromCodePoint && String.fromCodePoint.length !== 1) {\n var originalFromCodePoint = String.fromCodePoint;\n overrideNative(String, 'fromCodePoint', function fromCodePoint(codePoints) {\n return ES.Call(originalFromCodePoint, this, arguments);\n });\n }\n\n var StringShims = {\n fromCodePoint: function fromCodePoint(codePoints) {\n var result = [];\n var next;\n for (var i = 0, length = arguments.length; i < length; i++) {\n next = Number(arguments[i]);\n if (!ES.SameValue(next, ES.ToInteger(next)) || next < 0 || next > 0x10FFFF) {\n throw new RangeError('Invalid code point ' + next);\n }\n\n if (next < 0x10000) {\n _push(result, String.fromCharCode(next));\n } else {\n next -= 0x10000;\n _push(result, String.fromCharCode((next >> 10) + 0xD800));\n _push(result, String.fromCharCode((next % 0x400) + 0xDC00));\n }\n }\n return result.join('');\n },\n\n raw: function raw(callSite) {\n var cooked = ES.ToObject(callSite, 'bad callSite');\n var rawString = ES.ToObject(cooked.raw, 'bad raw value');\n var len = rawString.length;\n var literalsegments = ES.ToLength(len);\n if (literalsegments <= 0) {\n return '';\n }\n\n var stringElements = [];\n var nextIndex = 0;\n var nextKey, next, nextSeg, nextSub;\n while (nextIndex < literalsegments) {\n nextKey = ES.ToString(nextIndex);\n nextSeg = ES.ToString(rawString[nextKey]);\n _push(stringElements, nextSeg);\n if (nextIndex + 1 >= literalsegments) {\n break;\n }\n next = nextIndex + 1 < arguments.length ? arguments[nextIndex + 1] : '';\n nextSub = ES.ToString(next);\n _push(stringElements, nextSub);\n nextIndex += 1;\n }\n return stringElements.join('');\n }\n };\n if (String.raw && String.raw({ raw: { 0: 'x', 1: 'y', length: 2 } }) !== 'xy') {\n // IE 11 TP has a broken String.raw implementation\n overrideNative(String, 'raw', StringShims.raw);\n }\n defineProperties(String, StringShims);\n\n // Fast repeat, uses the `Exponentiation by squaring` algorithm.\n // Perf: http://jsperf.com/string-repeat2/2\n var stringRepeat = function repeat(s, times) {\n if (times < 1) { return ''; }\n if (times % 2) { return repeat(s, times - 1) + s; }\n var half = repeat(s, times / 2);\n return half + half;\n };\n var stringMaxLength = Infinity;\n\n var StringPrototypeShims = {\n repeat: function repeat(times) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var numTimes = ES.ToInteger(times);\n if (numTimes < 0 || numTimes >= stringMaxLength) {\n throw new RangeError('repeat count must be less than infinity and not overflow maximum string size');\n }\n return stringRepeat(thisStr, numTimes);\n },\n\n startsWith: function startsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"startsWith\" with a regex');\n }\n var searchStr = ES.ToString(searchString);\n var position;\n if (arguments.length > 1) {\n position = arguments[1];\n }\n var start = _max(ES.ToInteger(position), 0);\n return _strSlice(S, start, start + searchStr.length) === searchStr;\n },\n\n endsWith: function endsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"endsWith\" with a regex');\n }\n var searchStr = ES.ToString(searchString);\n var len = S.length;\n var endPosition;\n if (arguments.length > 1) {\n endPosition = arguments[1];\n }\n var pos = typeof endPosition === 'undefined' ? len : ES.ToInteger(endPosition);\n var end = _min(_max(pos, 0), len);\n return _strSlice(S, end - searchStr.length, end) === searchStr;\n },\n\n includes: function includes(searchString) {\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('\"includes\" does not accept a RegExp');\n }\n var searchStr = ES.ToString(searchString);\n var position;\n if (arguments.length > 1) {\n position = arguments[1];\n }\n // Somehow this trick makes method 100% compat with the spec.\n return _indexOf(this, searchStr, position) !== -1;\n },\n\n codePointAt: function codePointAt(pos) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var position = ES.ToInteger(pos);\n var length = thisStr.length;\n if (position >= 0 && position < length) {\n var first = thisStr.charCodeAt(position);\n var isEnd = position + 1 === length;\n if (first < 0xD800 || first > 0xDBFF || isEnd) { return first; }\n var second = thisStr.charCodeAt(position + 1);\n if (second < 0xDC00 || second > 0xDFFF) { return first; }\n return ((first - 0xD800) * 1024) + (second - 0xDC00) + 0x10000;\n }\n }\n };\n if (String.prototype.includes && 'a'.includes('a', Infinity) !== false) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n\n if (String.prototype.startsWith && String.prototype.endsWith) {\n var startsWithRejectsRegex = throwsError(function () {\n /* throws if spec-compliant */\n return '/a/'.startsWith(/a/);\n });\n var startsWithHandlesInfinity = valueOrFalseIfThrows(function () {\n return 'abc'.startsWith('a', Infinity) === false;\n });\n if (!startsWithRejectsRegex || !startsWithHandlesInfinity) {\n // Firefox (< 37?) and IE 11 TP have a noncompliant startsWith implementation\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n }\n if (hasSymbols) {\n var startsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.startsWith(re);\n });\n if (!startsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n }\n var endsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.endsWith(re);\n });\n if (!endsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n var includesSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.includes(re);\n });\n if (!includesSupportsSymbolMatch) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n }\n\n defineProperties(String.prototype, StringPrototypeShims);\n\n // whitespace from: http://es5.github.io/#x15.5.4.20\n // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\n var ws = [\n '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n '\\u2029\\uFEFF'\n ].join('');\n var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\n var trimShim = function trim() {\n return ES.ToString(ES.RequireObjectCoercible(this)).replace(trimRegexp, '');\n };\n var nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\n var nonWSregex = new RegExp('[' + nonWS + ']', 'g');\n var isBadHexRegex = /^[-+]0x[0-9a-f]+$/i;\n var hasStringTrimBug = nonWS.trim().length !== nonWS.length;\n defineProperty(String.prototype, 'trim', trimShim, hasStringTrimBug);\n\n // Given an argument x, it will return an IteratorResult object,\n // with value set to x and done to false.\n // Given no arguments, it will return an iterator completion object.\n var iteratorResult = function (x) {\n return { value: x, done: arguments.length === 0 };\n };\n\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-string.prototype-@@iterator\n var StringIterator = function (s) {\n ES.RequireObjectCoercible(s);\n this._s = ES.ToString(s);\n this._i = 0;\n };\n StringIterator.prototype.next = function () {\n var s = this._s;\n var i = this._i;\n if (typeof s === 'undefined' || i >= s.length) {\n this._s = void 0;\n return iteratorResult();\n }\n var first = s.charCodeAt(i);\n var second, len;\n if (first < 0xD800 || first > 0xDBFF || (i + 1) === s.length) {\n len = 1;\n } else {\n second = s.charCodeAt(i + 1);\n len = (second < 0xDC00 || second > 0xDFFF) ? 1 : 2;\n }\n this._i = i + len;\n return iteratorResult(s.substr(i, len));\n };\n addIterator(StringIterator.prototype);\n addIterator(String.prototype, function () {\n return new StringIterator(this);\n });\n\n var ArrayShims = {\n from: function from(items) {\n var C = this;\n var mapFn;\n if (arguments.length > 1) {\n mapFn = arguments[1];\n }\n var mapping, T;\n if (typeof mapFn === 'undefined') {\n mapping = false;\n } else {\n if (!ES.IsCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n if (arguments.length > 2) {\n T = arguments[2];\n }\n mapping = true;\n }\n\n // Note that that Arrays will use ArrayIterator:\n // https://bugs.ecmascript.org/show_bug.cgi?id=2416\n var usingIterator = typeof (isArguments(items) || ES.GetMethod(items, $iterator$)) !== 'undefined';\n\n var length, result, i;\n if (usingIterator) {\n result = ES.IsConstructor(C) ? Object(new C()) : [];\n var iterator = ES.GetIterator(items);\n var next, nextValue;\n\n i = 0;\n while (true) {\n next = ES.IteratorStep(iterator);\n if (next === false) {\n break;\n }\n nextValue = next.value;\n try {\n if (mapping) {\n nextValue = typeof T === 'undefined' ? mapFn(nextValue, i) : _call(mapFn, T, nextValue, i);\n }\n result[i] = nextValue;\n } catch (e) {\n ES.IteratorClose(iterator, true);\n throw e;\n }\n i += 1;\n }\n length = i;\n } else {\n var arrayLike = ES.ToObject(items);\n length = ES.ToLength(arrayLike.length);\n result = ES.IsConstructor(C) ? Object(new C(length)) : new Array(length);\n var value;\n for (i = 0; i < length; ++i) {\n value = arrayLike[i];\n if (mapping) {\n value = typeof T === 'undefined' ? mapFn(value, i) : _call(mapFn, T, value, i);\n }\n createDataPropertyOrThrow(result, i, value);\n }\n }\n\n result.length = length;\n return result;\n },\n\n of: function of() {\n var len = arguments.length;\n var C = this;\n var A = isArray(C) || !ES.IsCallable(C) ? new Array(len) : ES.Construct(C, [len]);\n for (var k = 0; k < len; ++k) {\n createDataPropertyOrThrow(A, k, arguments[k]);\n }\n A.length = len;\n return A;\n }\n };\n defineProperties(Array, ArrayShims);\n addDefaultSpecies(Array);\n\n // Our ArrayIterator is private; see\n // https://github.com/paulmillr/es6-shim/issues/252\n ArrayIterator = function (array, kind) {\n this.i = 0;\n this.array = array;\n this.kind = kind;\n };\n\n defineProperties(ArrayIterator.prototype, {\n next: function () {\n var i = this.i;\n var array = this.array;\n if (!(this instanceof ArrayIterator)) {\n throw new TypeError('Not an ArrayIterator');\n }\n if (typeof array !== 'undefined') {\n var len = ES.ToLength(array.length);\n for (; i < len; i++) {\n var kind = this.kind;\n var retval;\n if (kind === 'key') {\n retval = i;\n } else if (kind === 'value') {\n retval = array[i];\n } else if (kind === 'entry') {\n retval = [i, array[i]];\n }\n this.i = i + 1;\n return iteratorResult(retval);\n }\n }\n this.array = void 0;\n return iteratorResult();\n }\n });\n addIterator(ArrayIterator.prototype);\n\n /*\n var orderKeys = function orderKeys(a, b) {\n var aNumeric = String(ES.ToInteger(a)) === a;\n var bNumeric = String(ES.ToInteger(b)) === b;\n if (aNumeric && bNumeric) {\n return b - a;\n } else if (aNumeric && !bNumeric) {\n return -1;\n } else if (!aNumeric && bNumeric) {\n return 1;\n } else {\n return a.localeCompare(b);\n }\n };\n\n var getAllKeys = function getAllKeys(object) {\n var ownKeys = [];\n var keys = [];\n\n for (var key in object) {\n _push(_hasOwnProperty(object, key) ? ownKeys : keys, key);\n }\n _sort(ownKeys, orderKeys);\n _sort(keys, orderKeys);\n\n return _concat(ownKeys, keys);\n };\n */\n\n // note: this is positioned here because it depends on ArrayIterator\n var arrayOfSupportsSubclassing = Array.of === ArrayShims.of || (function () {\n // Detects a bug in Webkit nightly r181886\n var Foo = function Foo(len) { this.length = len; };\n Foo.prototype = [];\n var fooArr = Array.of.apply(Foo, [1, 2]);\n return fooArr instanceof Foo && fooArr.length === 2;\n }());\n if (!arrayOfSupportsSubclassing) {\n overrideNative(Array, 'of', ArrayShims.of);\n }\n\n var ArrayPrototypeShims = {\n copyWithin: function copyWithin(target, start) {\n var o = ES.ToObject(this);\n var len = ES.ToLength(o.length);\n var relativeTarget = ES.ToInteger(target);\n var relativeStart = ES.ToInteger(start);\n var to = relativeTarget < 0 ? _max(len + relativeTarget, 0) : _min(relativeTarget, len);\n var from = relativeStart < 0 ? _max(len + relativeStart, 0) : _min(relativeStart, len);\n var end;\n if (arguments.length > 2) {\n end = arguments[2];\n }\n var relativeEnd = typeof end === 'undefined' ? len : ES.ToInteger(end);\n var finalItem = relativeEnd < 0 ? _max(len + relativeEnd, 0) : _min(relativeEnd, len);\n var count = _min(finalItem - from, len - to);\n var direction = 1;\n if (from < to && to < (from + count)) {\n direction = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count > 0) {\n if (from in o) {\n o[to] = o[from];\n } else {\n delete o[to];\n }\n from += direction;\n to += direction;\n count -= 1;\n }\n return o;\n },\n\n fill: function fill(value) {\n var start;\n if (arguments.length > 1) {\n start = arguments[1];\n }\n var end;\n if (arguments.length > 2) {\n end = arguments[2];\n }\n var O = ES.ToObject(this);\n var len = ES.ToLength(O.length);\n start = ES.ToInteger(typeof start === 'undefined' ? 0 : start);\n end = ES.ToInteger(typeof end === 'undefined' ? len : end);\n\n var relativeStart = start < 0 ? _max(len + start, 0) : _min(start, len);\n var relativeEnd = end < 0 ? len + end : end;\n\n for (var i = relativeStart; i < len && i < relativeEnd; ++i) {\n O[i] = value;\n }\n return O;\n },\n\n find: function find(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#find: predicate must be a function');\n }\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n for (var i = 0, value; i < length; i++) {\n value = list[i];\n if (thisArg) {\n if (_call(predicate, thisArg, value, i, list)) {\n return value;\n }\n } else if (predicate(value, i, list)) {\n return value;\n }\n }\n },\n\n findIndex: function findIndex(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#findIndex: predicate must be a function');\n }\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n for (var i = 0; i < length; i++) {\n if (thisArg) {\n if (_call(predicate, thisArg, list[i], i, list)) {\n return i;\n }\n } else if (predicate(list[i], i, list)) {\n return i;\n }\n }\n return -1;\n },\n\n keys: function keys() {\n return new ArrayIterator(this, 'key');\n },\n\n values: function values() {\n return new ArrayIterator(this, 'value');\n },\n\n entries: function entries() {\n return new ArrayIterator(this, 'entry');\n }\n };\n // Safari 7.1 defines Array#keys and Array#entries natively,\n // but the resulting ArrayIterator objects don't have a \"next\" method.\n if (Array.prototype.keys && !ES.IsCallable([1].keys().next)) {\n delete Array.prototype.keys;\n }\n if (Array.prototype.entries && !ES.IsCallable([1].entries().next)) {\n delete Array.prototype.entries;\n }\n\n // Chrome 38 defines Array#keys and Array#entries, and Array#@@iterator, but not Array#values\n if (Array.prototype.keys && Array.prototype.entries && !Array.prototype.values && Array.prototype[$iterator$]) {\n defineProperties(Array.prototype, {\n values: Array.prototype[$iterator$]\n });\n if (Type.symbol(Symbol.unscopables)) {\n Array.prototype[Symbol.unscopables].values = true;\n }\n }\n // Chrome 40 defines Array#values with the incorrect name, although Array#{keys,entries} have the correct name\n if (functionsHaveNames && Array.prototype.values && Array.prototype.values.name !== 'values') {\n var originalArrayPrototypeValues = Array.prototype.values;\n overrideNative(Array.prototype, 'values', function values() { return ES.Call(originalArrayPrototypeValues, this, arguments); });\n defineProperty(Array.prototype, $iterator$, Array.prototype.values, true);\n }\n defineProperties(Array.prototype, ArrayPrototypeShims);\n\n if (1 / [true].indexOf(true, -0) < 0) {\n // indexOf when given a position arg of -0 should return +0.\n // https://github.com/tc39/ecma262/pull/316\n defineProperty(Array.prototype, 'indexOf', function indexOf(searchElement) {\n var value = _arrayIndexOfApply(this, arguments);\n if (value === 0 && (1 / value) < 0) {\n return 0;\n }\n return value;\n }, true);\n }\n\n addIterator(Array.prototype, function () { return this.values(); });\n // Chrome defines keys/values/entries on Array, but doesn't give us\n // any way to identify its iterator. So add our own shimmed field.\n if (Object.getPrototypeOf) {\n addIterator(Object.getPrototypeOf([].values()));\n }\n\n // note: this is positioned here because it relies on Array#entries\n var arrayFromSwallowsNegativeLengths = (function () {\n // Detects a Firefox bug in v32\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1063993\n return valueOrFalseIfThrows(function () {\n return Array.from({ length: -1 }).length === 0;\n });\n }());\n var arrayFromHandlesIterables = (function () {\n // Detects a bug in Webkit nightly r181886\n var arr = Array.from([0].entries());\n return arr.length === 1 && isArray(arr[0]) && arr[0][0] === 0 && arr[0][1] === 0;\n }());\n if (!arrayFromSwallowsNegativeLengths || !arrayFromHandlesIterables) {\n overrideNative(Array, 'from', ArrayShims.from);\n }\n var arrayFromHandlesUndefinedMapFunction = (function () {\n // Microsoft Edge v0.11 throws if the mapFn argument is *provided* but undefined,\n // but the spec doesn't care if it's provided or not - undefined doesn't throw.\n return valueOrFalseIfThrows(function () {\n return Array.from([0], void 0);\n });\n }());\n if (!arrayFromHandlesUndefinedMapFunction) {\n var origArrayFrom = Array.from;\n overrideNative(Array, 'from', function from(items) {\n if (arguments.length > 1 && typeof arguments[1] !== 'undefined') {\n return ES.Call(origArrayFrom, this, arguments);\n } else {\n return _call(origArrayFrom, this, items);\n }\n });\n }\n\n var int32sAsOne = -(Math.pow(2, 32) - 1);\n var toLengthsCorrectly = function (method, reversed) {\n var obj = { length: int32sAsOne };\n obj[reversed ? (obj.length >>> 0) - 1 : 0] = true;\n return valueOrFalseIfThrows(function () {\n _call(method, obj, function () {\n // note: in nonconforming browsers, this will be called\n // -1 >>> 0 times, which is 4294967295, so the throw matters.\n throw new RangeError('should not reach here');\n }, []);\n return true;\n });\n };\n if (!toLengthsCorrectly(Array.prototype.forEach)) {\n var originalForEach = Array.prototype.forEach;\n overrideNative(Array.prototype, 'forEach', function forEach(callbackFn) {\n return ES.Call(originalForEach, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.map)) {\n var originalMap = Array.prototype.map;\n overrideNative(Array.prototype, 'map', function map(callbackFn) {\n return ES.Call(originalMap, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.filter)) {\n var originalFilter = Array.prototype.filter;\n overrideNative(Array.prototype, 'filter', function filter(callbackFn) {\n return ES.Call(originalFilter, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.some)) {\n var originalSome = Array.prototype.some;\n overrideNative(Array.prototype, 'some', function some(callbackFn) {\n return ES.Call(originalSome, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.every)) {\n var originalEvery = Array.prototype.every;\n overrideNative(Array.prototype, 'every', function every(callbackFn) {\n return ES.Call(originalEvery, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.reduce)) {\n var originalReduce = Array.prototype.reduce;\n overrideNative(Array.prototype, 'reduce', function reduce(callbackFn) {\n return ES.Call(originalReduce, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.reduceRight, true)) {\n var originalReduceRight = Array.prototype.reduceRight;\n overrideNative(Array.prototype, 'reduceRight', function reduceRight(callbackFn) {\n return ES.Call(originalReduceRight, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n\n var lacksOctalSupport = Number('0o10') !== 8;\n var lacksBinarySupport = Number('0b10') !== 2;\n var trimsNonWhitespace = _some(nonWS, function (c) {\n return Number(c + 0 + c) === 0;\n });\n if (lacksOctalSupport || lacksBinarySupport || trimsNonWhitespace) {\n var OrigNumber = Number;\n var binaryRegex = /^0b[01]+$/i;\n var octalRegex = /^0o[0-7]+$/i;\n // Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, \"test\" is an own property of regexes. wtf.\n var isBinary = binaryRegex.test.bind(binaryRegex);\n var isOctal = octalRegex.test.bind(octalRegex);\n var toPrimitive = function (O) { // need to replace this with `es-to-primitive/es6`\n var result;\n if (typeof O.valueOf === 'function') {\n result = O.valueOf();\n if (Type.primitive(result)) {\n return result;\n }\n }\n if (typeof O.toString === 'function') {\n result = O.toString();\n if (Type.primitive(result)) {\n return result;\n }\n }\n throw new TypeError('No default value');\n };\n var hasNonWS = nonWSregex.test.bind(nonWSregex);\n var isBadHex = isBadHexRegex.test.bind(isBadHexRegex);\n var NumberShim = (function () {\n // this is wrapped in an IIFE because of IE 6-8's wacky scoping issues with named function expressions.\n var NumberShim = function Number(value) {\n var primValue;\n if (arguments.length > 0) {\n primValue = Type.primitive(value) ? value : toPrimitive(value, 'number');\n } else {\n primValue = 0;\n }\n if (typeof primValue === 'string') {\n primValue = ES.Call(trimShim, primValue);\n if (isBinary(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 2);\n } else if (isOctal(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 8);\n } else if (hasNonWS(primValue) || isBadHex(primValue)) {\n primValue = NaN;\n }\n }\n var receiver = this;\n var valueOfSucceeds = valueOrFalseIfThrows(function () {\n OrigNumber.prototype.valueOf.call(receiver);\n return true;\n });\n if (receiver instanceof NumberShim && !valueOfSucceeds) {\n return new OrigNumber(primValue);\n }\n return OrigNumber(primValue);\n };\n return NumberShim;\n }());\n wrapConstructor(OrigNumber, NumberShim, {});\n // this is necessary for ES3 browsers, where these properties are non-enumerable.\n defineProperties(NumberShim, {\n NaN: OrigNumber.NaN,\n MAX_VALUE: OrigNumber.MAX_VALUE,\n MIN_VALUE: OrigNumber.MIN_VALUE,\n NEGATIVE_INFINITY: OrigNumber.NEGATIVE_INFINITY,\n POSITIVE_INFINITY: OrigNumber.POSITIVE_INFINITY\n });\n /* globals Number: true */\n /* eslint-disable no-undef, no-global-assign */\n Number = NumberShim;\n Value.redefine(globals, 'Number', NumberShim);\n /* eslint-enable no-undef, no-global-assign */\n /* globals Number: false */\n }\n\n var maxSafeInteger = Math.pow(2, 53) - 1;\n defineProperties(Number, {\n MAX_SAFE_INTEGER: maxSafeInteger,\n MIN_SAFE_INTEGER: -maxSafeInteger,\n EPSILON: 2.220446049250313e-16,\n\n parseInt: globals.parseInt,\n parseFloat: globals.parseFloat,\n\n isFinite: numberIsFinite,\n\n isInteger: function isInteger(value) {\n return numberIsFinite(value) && ES.ToInteger(value) === value;\n },\n\n isSafeInteger: function isSafeInteger(value) {\n return Number.isInteger(value) && _abs(value) <= Number.MAX_SAFE_INTEGER;\n },\n\n isNaN: numberIsNaN\n });\n // Firefox 37 has a conforming Number.parseInt, but it's not === to the global parseInt (fixed in v40)\n defineProperty(Number, 'parseInt', globals.parseInt, Number.parseInt !== globals.parseInt);\n\n // Work around bugs in Array#find and Array#findIndex -- early\n // implementations skipped holes in sparse arrays. (Note that the\n // implementations of find/findIndex indirectly use shimmed\n // methods of Number, so this test has to happen down here.)\n /* eslint-disable no-sparse-arrays */\n if ([, 1].find(function () { return true; }) === 1) {\n overrideNative(Array.prototype, 'find', ArrayPrototypeShims.find);\n }\n if ([, 1].findIndex(function () { return true; }) !== 0) {\n overrideNative(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex);\n }\n /* eslint-enable no-sparse-arrays */\n\n var isEnumerableOn = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable);\n var ensureEnumerable = function ensureEnumerable(obj, prop) {\n if (supportsDescriptors && isEnumerableOn(obj, prop)) {\n Object.defineProperty(obj, prop, { enumerable: false });\n }\n };\n var sliceArgs = function sliceArgs() {\n // per https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n // and https://gist.github.com/WebReflection/4327762cb87a8c634a29\n var initial = Number(this);\n var len = arguments.length;\n var desiredArgCount = len - initial;\n var args = new Array(desiredArgCount < 0 ? 0 : desiredArgCount);\n for (var i = initial; i < len; ++i) {\n args[i - initial] = arguments[i];\n }\n return args;\n };\n var assignTo = function assignTo(source) {\n return function assignToSource(target, key) {\n target[key] = source[key];\n return target;\n };\n };\n var assignReducer = function (target, source) {\n var sourceKeys = keys(Object(source));\n var symbols;\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n symbols = _filter(Object.getOwnPropertySymbols(Object(source)), isEnumerableOn(source));\n }\n return _reduce(_concat(sourceKeys, symbols || []), assignTo(source), target);\n };\n\n var ObjectShims = {\n // 19.1.3.1\n assign: function (target, source) {\n var to = ES.ToObject(target, 'Cannot convert undefined or null to object');\n return _reduce(ES.Call(sliceArgs, 1, arguments), assignReducer, to);\n },\n\n // Added in WebKit in https://bugs.webkit.org/show_bug.cgi?id=143865\n is: function is(a, b) {\n return ES.SameValue(a, b);\n }\n };\n var assignHasPendingExceptions = Object.assign && Object.preventExtensions && (function () {\n // Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n // which is 72% slower than our shim, and Firefox 40's native implementation.\n var thrower = Object.preventExtensions({ 1: 2 });\n try {\n Object.assign(thrower, 'xy');\n } catch (e) {\n return thrower[1] === 'y';\n }\n }());\n if (assignHasPendingExceptions) {\n overrideNative(Object, 'assign', ObjectShims.assign);\n }\n defineProperties(Object, ObjectShims);\n\n if (supportsDescriptors) {\n var ES5ObjectShims = {\n // 19.1.3.9\n // shim from https://gist.github.com/WebReflection/5593554\n setPrototypeOf: (function (Object, magic) {\n var set;\n\n var checkArgs = function (O, proto) {\n if (!ES.TypeIsObject(O)) {\n throw new TypeError('cannot set prototype on a non-object');\n }\n if (!(proto === null || ES.TypeIsObject(proto))) {\n throw new TypeError('can only set prototype to an object or null' + proto);\n }\n };\n\n var setPrototypeOf = function (O, proto) {\n checkArgs(O, proto);\n _call(set, O, proto);\n return O;\n };\n\n try {\n // this works already in Firefox and Safari\n set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set;\n _call(set, {}, null);\n } catch (e) {\n if (Object.prototype !== {}[magic]) {\n // IE < 11 cannot be shimmed\n return;\n }\n // probably Chrome or some old Mobile stock browser\n set = function (proto) {\n this[magic] = proto;\n };\n // please note that this will **not** work\n // in those browsers that do not inherit\n // __proto__ by mistake from Object.prototype\n // in these cases we should probably throw an error\n // or at least be informed about the issue\n setPrototypeOf.polyfill = setPrototypeOf(\n setPrototypeOf({}, null),\n Object.prototype\n ) instanceof Object;\n // setPrototypeOf.polyfill === true means it works as meant\n // setPrototypeOf.polyfill === false means it's not 100% reliable\n // setPrototypeOf.polyfill === undefined\n // or\n // setPrototypeOf.polyfill == null means it's not a polyfill\n // which means it works as expected\n // we can even delete Object.prototype.__proto__;\n }\n return setPrototypeOf;\n }(Object, '__proto__'))\n };\n\n defineProperties(Object, ES5ObjectShims);\n }\n\n // Workaround bug in Opera 12 where setPrototypeOf(x, null) doesn't work,\n // but Object.create(null) does.\n if (Object.setPrototypeOf && Object.getPrototypeOf &&\n Object.getPrototypeOf(Object.setPrototypeOf({}, null)) !== null &&\n Object.getPrototypeOf(Object.create(null)) === null) {\n (function () {\n var FAKENULL = Object.create(null);\n var gpo = Object.getPrototypeOf;\n var spo = Object.setPrototypeOf;\n Object.getPrototypeOf = function (o) {\n var result = gpo(o);\n return result === FAKENULL ? null : result;\n };\n Object.setPrototypeOf = function (o, p) {\n var proto = p === null ? FAKENULL : p;\n return spo(o, proto);\n };\n Object.setPrototypeOf.polyfill = false;\n }());\n }\n\n var objectKeysAcceptsPrimitives = !throwsError(function () { return Object.keys('foo'); });\n if (!objectKeysAcceptsPrimitives) {\n var originalObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n return originalObjectKeys(ES.ToObject(value));\n });\n keys = Object.keys;\n }\n var objectKeysRejectsRegex = throwsError(function () { return Object.keys(/a/g); });\n if (objectKeysRejectsRegex) {\n var regexRejectingObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n if (Type.regex(value)) {\n var regexKeys = [];\n for (var k in value) {\n if (_hasOwnProperty(value, k)) {\n _push(regexKeys, k);\n }\n }\n return regexKeys;\n }\n return regexRejectingObjectKeys(value);\n });\n keys = Object.keys;\n }\n\n if (Object.getOwnPropertyNames) {\n var objectGOPNAcceptsPrimitives = !throwsError(function () { return Object.getOwnPropertyNames('foo'); });\n if (!objectGOPNAcceptsPrimitives) {\n var cachedWindowNames = typeof window === 'object' ? Object.getOwnPropertyNames(window) : [];\n var originalObjectGetOwnPropertyNames = Object.getOwnPropertyNames;\n overrideNative(Object, 'getOwnPropertyNames', function getOwnPropertyNames(value) {\n var val = ES.ToObject(value);\n if (_toString(val) === '[object Window]') {\n try {\n return originalObjectGetOwnPropertyNames(val);\n } catch (e) {\n // IE bug where layout engine calls userland gOPN for cross-domain `window` objects\n return _concat([], cachedWindowNames);\n }\n }\n return originalObjectGetOwnPropertyNames(val);\n });\n }\n }\n if (Object.getOwnPropertyDescriptor) {\n var objectGOPDAcceptsPrimitives = !throwsError(function () { return Object.getOwnPropertyDescriptor('foo', 'bar'); });\n if (!objectGOPDAcceptsPrimitives) {\n var originalObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n overrideNative(Object, 'getOwnPropertyDescriptor', function getOwnPropertyDescriptor(value, property) {\n return originalObjectGetOwnPropertyDescriptor(ES.ToObject(value), property);\n });\n }\n }\n if (Object.seal) {\n var objectSealAcceptsPrimitives = !throwsError(function () { return Object.seal('foo'); });\n if (!objectSealAcceptsPrimitives) {\n var originalObjectSeal = Object.seal;\n overrideNative(Object, 'seal', function seal(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectSeal(value);\n });\n }\n }\n if (Object.isSealed) {\n var objectIsSealedAcceptsPrimitives = !throwsError(function () { return Object.isSealed('foo'); });\n if (!objectIsSealedAcceptsPrimitives) {\n var originalObjectIsSealed = Object.isSealed;\n overrideNative(Object, 'isSealed', function isSealed(value) {\n if (!ES.TypeIsObject(value)) { return true; }\n return originalObjectIsSealed(value);\n });\n }\n }\n if (Object.freeze) {\n var objectFreezeAcceptsPrimitives = !throwsError(function () { return Object.freeze('foo'); });\n if (!objectFreezeAcceptsPrimitives) {\n var originalObjectFreeze = Object.freeze;\n overrideNative(Object, 'freeze', function freeze(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectFreeze(value);\n });\n }\n }\n if (Object.isFrozen) {\n var objectIsFrozenAcceptsPrimitives = !throwsError(function () { return Object.isFrozen('foo'); });\n if (!objectIsFrozenAcceptsPrimitives) {\n var originalObjectIsFrozen = Object.isFrozen;\n overrideNative(Object, 'isFrozen', function isFrozen(value) {\n if (!ES.TypeIsObject(value)) { return true; }\n return originalObjectIsFrozen(value);\n });\n }\n }\n if (Object.preventExtensions) {\n var objectPreventExtensionsAcceptsPrimitives = !throwsError(function () { return Object.preventExtensions('foo'); });\n if (!objectPreventExtensionsAcceptsPrimitives) {\n var originalObjectPreventExtensions = Object.preventExtensions;\n overrideNative(Object, 'preventExtensions', function preventExtensions(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectPreventExtensions(value);\n });\n }\n }\n if (Object.isExtensible) {\n var objectIsExtensibleAcceptsPrimitives = !throwsError(function () { return Object.isExtensible('foo'); });\n if (!objectIsExtensibleAcceptsPrimitives) {\n var originalObjectIsExtensible = Object.isExtensible;\n overrideNative(Object, 'isExtensible', function isExtensible(value) {\n if (!ES.TypeIsObject(value)) { return false; }\n return originalObjectIsExtensible(value);\n });\n }\n }\n if (Object.getPrototypeOf) {\n var objectGetProtoAcceptsPrimitives = !throwsError(function () { return Object.getPrototypeOf('foo'); });\n if (!objectGetProtoAcceptsPrimitives) {\n var originalGetProto = Object.getPrototypeOf;\n overrideNative(Object, 'getPrototypeOf', function getPrototypeOf(value) {\n return originalGetProto(ES.ToObject(value));\n });\n }\n }\n\n var hasFlags = supportsDescriptors && (function () {\n var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags');\n return desc && ES.IsCallable(desc.get);\n }());\n if (supportsDescriptors && !hasFlags) {\n var regExpFlagsGetter = function flags() {\n if (!ES.TypeIsObject(this)) {\n throw new TypeError('Method called on incompatible type: must be an object.');\n }\n var result = '';\n if (this.global) {\n result += 'g';\n }\n if (this.ignoreCase) {\n result += 'i';\n }\n if (this.multiline) {\n result += 'm';\n }\n if (this.unicode) {\n result += 'u';\n }\n if (this.sticky) {\n result += 'y';\n }\n return result;\n };\n\n Value.getter(RegExp.prototype, 'flags', regExpFlagsGetter);\n }\n\n var regExpSupportsFlagsWithRegex = supportsDescriptors && valueOrFalseIfThrows(function () {\n return String(new RegExp(/a/g, 'i')) === '/a/i';\n });\n var regExpNeedsToSupportSymbolMatch = hasSymbols && supportsDescriptors && (function () {\n // Edge 0.12 supports flags fully, but does not support Symbol.match\n var regex = /./;\n regex[Symbol.match] = false;\n return RegExp(regex) === regex;\n }());\n\n var regexToStringIsGeneric = valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({ source: 'abc' }) === '/abc/';\n });\n var regexToStringSupportsGenericFlags = regexToStringIsGeneric && valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({ source: 'a', flags: 'b' }) === '/a/b';\n });\n if (!regexToStringIsGeneric || !regexToStringSupportsGenericFlags) {\n var origRegExpToString = RegExp.prototype.toString;\n defineProperty(RegExp.prototype, 'toString', function toString() {\n var R = ES.RequireObjectCoercible(this);\n if (Type.regex(R)) {\n return _call(origRegExpToString, R);\n }\n var pattern = $String(R.source);\n var flags = $String(R.flags);\n return '/' + pattern + '/' + flags;\n }, true);\n Value.preserveToString(RegExp.prototype.toString, origRegExpToString);\n }\n\n if (supportsDescriptors && (!regExpSupportsFlagsWithRegex || regExpNeedsToSupportSymbolMatch)) {\n var flagsGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get;\n var sourceDesc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'source') || {};\n var legacySourceGetter = function () {\n // prior to it being a getter, it's own + nonconfigurable\n return this.source;\n };\n var sourceGetter = ES.IsCallable(sourceDesc.get) ? sourceDesc.get : legacySourceGetter;\n\n var OrigRegExp = RegExp;\n var RegExpShim = (function () {\n return function RegExp(pattern, flags) {\n var patternIsRegExp = ES.IsRegExp(pattern);\n var calledWithNew = this instanceof RegExp;\n if (!calledWithNew && patternIsRegExp && typeof flags === 'undefined' && pattern.constructor === RegExp) {\n return pattern;\n }\n\n var P = pattern;\n var F = flags;\n if (Type.regex(pattern)) {\n P = ES.Call(sourceGetter, pattern);\n F = typeof flags === 'undefined' ? ES.Call(flagsGetter, pattern) : flags;\n return new RegExp(P, F);\n } else if (patternIsRegExp) {\n P = pattern.source;\n F = typeof flags === 'undefined' ? pattern.flags : flags;\n }\n return new OrigRegExp(pattern, flags);\n };\n }());\n wrapConstructor(OrigRegExp, RegExpShim, {\n $input: true // Chrome < v39 & Opera < 26 have a nonstandard \"$input\" property\n });\n /* globals RegExp: true */\n /* eslint-disable no-undef, no-global-assign */\n RegExp = RegExpShim;\n Value.redefine(globals, 'RegExp', RegExpShim);\n /* eslint-enable no-undef, no-global-assign */\n /* globals RegExp: false */\n }\n\n if (supportsDescriptors) {\n var regexGlobals = {\n input: '$_',\n lastMatch: '$&',\n lastParen: '$+',\n leftContext: '$`',\n rightContext: '$\\''\n };\n _forEach(keys(regexGlobals), function (prop) {\n if (prop in RegExp && !(regexGlobals[prop] in RegExp)) {\n Value.getter(RegExp, regexGlobals[prop], function get() {\n return RegExp[prop];\n });\n }\n });\n }\n addDefaultSpecies(RegExp);\n\n var inverseEpsilon = 1 / Number.EPSILON;\n var roundTiesToEven = function roundTiesToEven(n) {\n // Even though this reduces down to `return n`, it takes advantage of built-in rounding.\n return (n + inverseEpsilon) - inverseEpsilon;\n };\n var BINARY_32_EPSILON = Math.pow(2, -23);\n var BINARY_32_MAX_VALUE = Math.pow(2, 127) * (2 - BINARY_32_EPSILON);\n var BINARY_32_MIN_VALUE = Math.pow(2, -126);\n var E = Math.E;\n var LOG2E = Math.LOG2E;\n var LOG10E = Math.LOG10E;\n var numberCLZ = Number.prototype.clz;\n delete Number.prototype.clz; // Safari 8 has Number#clz\n\n var MathShims = {\n acosh: function acosh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || value < 1) { return NaN; }\n if (x === 1) { return 0; }\n if (x === Infinity) { return x; }\n\n var xInvSquared = 1 / (x * x);\n if (x < 2) {\n return _log1p(x - 1 + (_sqrt(1 - xInvSquared) * x));\n }\n var halfX = x / 2;\n return _log1p(halfX + (_sqrt(1 - xInvSquared) * halfX) - 1) + (1 / LOG2E);\n },\n\n asinh: function asinh(value) {\n var x = Number(value);\n if (x === 0 || !globalIsFinite(x)) {\n return x;\n }\n\n var a = _abs(x);\n var aSquared = a * a;\n var s = _sign(x);\n if (a < 1) {\n return s * _log1p(a + (aSquared / (_sqrt(aSquared + 1) + 1)));\n }\n return s * (_log1p((a / 2) + (_sqrt(1 + (1 / aSquared)) * a / 2) - 1) + (1 / LOG2E));\n },\n\n atanh: function atanh(value) {\n var x = Number(value);\n\n if (x === 0) { return x; }\n if (x === -1) { return -Infinity; }\n if (x === 1) { return Infinity; }\n if (numberIsNaN(x) || x < -1 || x > 1) {\n return NaN;\n }\n\n var a = _abs(x);\n return _sign(x) * _log1p(2 * a / (1 - a)) / 2;\n },\n\n cbrt: function cbrt(value) {\n var x = Number(value);\n if (x === 0) { return x; }\n var negate = x < 0;\n var result;\n if (negate) { x = -x; }\n if (x === Infinity) {\n result = Infinity;\n } else {\n result = _exp(_log(x) / 3);\n // from http://en.wikipedia.org/wiki/Cube_root#Numerical_methods\n result = ((x / (result * result)) + (2 * result)) / 3;\n }\n return negate ? -result : result;\n },\n\n clz32: function clz32(value) {\n // See https://bugs.ecmascript.org/show_bug.cgi?id=2465\n var x = Number(value);\n var number = ES.ToUint32(x);\n if (number === 0) {\n return 32;\n }\n return numberCLZ ? ES.Call(numberCLZ, number) : 31 - _floor(_log(number + 0.5) * LOG2E);\n },\n\n cosh: function cosh(value) {\n var x = Number(value);\n if (x === 0) { return 1; } // +0 or -0\n if (numberIsNaN(x)) { return NaN; }\n if (!globalIsFinite(x)) { return Infinity; }\n\n var t = _exp(_abs(x) - 1);\n return (t + (1 / (t * E * E))) * (E / 2);\n },\n\n expm1: function expm1(value) {\n var x = Number(value);\n if (x === -Infinity) { return -1; }\n if (!globalIsFinite(x) || x === 0) { return x; }\n if (_abs(x) > 0.5) {\n return _exp(x) - 1;\n }\n // A more precise approximation using Taylor series expansion\n // from https://github.com/paulmillr/es6-shim/issues/314#issuecomment-70293986\n var t = x;\n var sum = 0;\n var n = 1;\n while (sum + t !== sum) {\n sum += t;\n n += 1;\n t *= x / n;\n }\n return sum;\n },\n\n hypot: function hypot(x, y) {\n var result = 0;\n var largest = 0;\n for (var i = 0; i < arguments.length; ++i) {\n var value = _abs(Number(arguments[i]));\n if (largest < value) {\n result *= (largest / value) * (largest / value);\n result += 1;\n largest = value;\n } else {\n result += value > 0 ? (value / largest) * (value / largest) : value;\n }\n }\n return largest === Infinity ? Infinity : largest * _sqrt(result);\n },\n\n log2: function log2(value) {\n return _log(value) * LOG2E;\n },\n\n log10: function log10(value) {\n return _log(value) * LOG10E;\n },\n\n log1p: _log1p,\n\n sign: _sign,\n\n sinh: function sinh(value) {\n var x = Number(value);\n if (!globalIsFinite(x) || x === 0) { return x; }\n\n var a = _abs(x);\n if (a < 1) {\n var u = Math.expm1(a);\n return _sign(x) * u * (1 + (1 / (u + 1))) / 2;\n }\n var t = _exp(a - 1);\n return _sign(x) * (t - (1 / (t * E * E))) * (E / 2);\n },\n\n tanh: function tanh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || x === 0) { return x; }\n // can exit early at +-20 as JS loses precision for true value at this integer\n if (x >= 20) { return 1; }\n if (x <= -20) { return -1; }\n\n return (Math.expm1(x) - Math.expm1(-x)) / (_exp(x) + _exp(-x));\n },\n\n trunc: function trunc(value) {\n var x = Number(value);\n return x < 0 ? -_floor(-x) : _floor(x);\n },\n\n imul: function imul(x, y) {\n // taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n var a = ES.ToUint32(x);\n var b = ES.ToUint32(y);\n var ah = (a >>> 16) & 0xffff;\n var al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff;\n var bl = b & 0xffff;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return (al * bl) + ((((ah * bl) + (al * bh)) << 16) >>> 0) | 0;\n },\n\n fround: function fround(x) {\n var v = Number(x);\n if (v === 0 || v === Infinity || v === -Infinity || numberIsNaN(v)) {\n return v;\n }\n var sign = _sign(v);\n var abs = _abs(v);\n if (abs < BINARY_32_MIN_VALUE) {\n return sign * roundTiesToEven(abs / BINARY_32_MIN_VALUE / BINARY_32_EPSILON) * BINARY_32_MIN_VALUE * BINARY_32_EPSILON;\n }\n // Veltkamp's splitting (?)\n var a = (1 + (BINARY_32_EPSILON / Number.EPSILON)) * abs;\n var result = a - (a - abs);\n if (result > BINARY_32_MAX_VALUE || numberIsNaN(result)) {\n return sign * Infinity;\n }\n return sign * result;\n }\n };\n\n var withinULPDistance = function withinULPDistance(result, expected, distance) {\n return _abs(1 - (result / expected)) / Number.EPSILON < (distance || 8);\n };\n\n defineProperties(Math, MathShims);\n // Chrome < 40 sinh returns ∞ for large numbers\n defineProperty(Math, 'sinh', MathShims.sinh, Math.sinh(710) === Infinity);\n // Chrome < 40 cosh returns ∞ for large numbers\n defineProperty(Math, 'cosh', MathShims.cosh, Math.cosh(710) === Infinity);\n // IE 11 TP has an imprecise log1p: reports Math.log1p(-1e-17) as 0\n defineProperty(Math, 'log1p', MathShims.log1p, Math.log1p(-1e-17) !== -1e-17);\n // IE 11 TP has an imprecise asinh: reports Math.asinh(-1e7) as not exactly equal to -Math.asinh(1e7)\n defineProperty(Math, 'asinh', MathShims.asinh, Math.asinh(-1e7) !== -Math.asinh(1e7));\n // Chrome < 54 asinh returns ∞ for large numbers and should not\n defineProperty(Math, 'asinh', MathShims.asinh, Math.asinh(1e+300) === Infinity);\n // Chrome < 54 atanh incorrectly returns 0 for large numbers\n defineProperty(Math, 'atanh', MathShims.atanh, Math.atanh(1e-300) === 0);\n // Chrome 40 has an imprecise Math.tanh with very small numbers\n defineProperty(Math, 'tanh', MathShims.tanh, Math.tanh(-2e-17) !== -2e-17);\n // Chrome 40 loses Math.acosh precision with high numbers\n defineProperty(Math, 'acosh', MathShims.acosh, Math.acosh(Number.MAX_VALUE) === Infinity);\n // Chrome < 54 has an inaccurate acosh for EPSILON deltas\n defineProperty(Math, 'acosh', MathShims.acosh, !withinULPDistance(Math.acosh(1 + Number.EPSILON), Math.sqrt(2 * Number.EPSILON)));\n // Firefox 38 on Windows\n defineProperty(Math, 'cbrt', MathShims.cbrt, !withinULPDistance(Math.cbrt(1e-300), 1e-100));\n // node 0.11 has an imprecise Math.sinh with very small numbers\n defineProperty(Math, 'sinh', MathShims.sinh, Math.sinh(-2e-17) !== -2e-17);\n // FF 35 on Linux reports 22025.465794806725 for Math.expm1(10)\n var expm1OfTen = Math.expm1(10);\n defineProperty(Math, 'expm1', MathShims.expm1, expm1OfTen > 22025.465794806719 || expm1OfTen < 22025.4657948067165168);\n\n var origMathRound = Math.round;\n // breaks in e.g. Safari 8, Internet Explorer 11, Opera 12\n var roundHandlesBoundaryConditions = Math.round(0.5 - (Number.EPSILON / 4)) === 0 &&\n Math.round(-0.5 + (Number.EPSILON / 3.99)) === 1;\n\n // When engines use Math.floor(x + 0.5) internally, Math.round can be buggy for large integers.\n // This behavior should be governed by \"round to nearest, ties to even mode\"\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-terms-and-definitions-number-type\n // These are the boundary cases where it breaks.\n var smallestPositiveNumberWhereRoundBreaks = inverseEpsilon + 1;\n var largestPositiveNumberWhereRoundBreaks = (2 * inverseEpsilon) - 1;\n var roundDoesNotIncreaseIntegers = [\n smallestPositiveNumberWhereRoundBreaks,\n largestPositiveNumberWhereRoundBreaks\n ].every(function (num) {\n return Math.round(num) === num;\n });\n defineProperty(Math, 'round', function round(x) {\n var floor = _floor(x);\n var ceil = floor === -1 ? -0 : floor + 1;\n return x - floor < 0.5 ? floor : ceil;\n }, !roundHandlesBoundaryConditions || !roundDoesNotIncreaseIntegers);\n Value.preserveToString(Math.round, origMathRound);\n\n var origImul = Math.imul;\n if (Math.imul(0xffffffff, 5) !== -5) {\n // Safari 6.1, at least, reports \"0\" for this value\n Math.imul = MathShims.imul;\n Value.preserveToString(Math.imul, origImul);\n }\n if (Math.imul.length !== 2) {\n // Safari 8.0.4 has a length of 1\n // fixed in https://bugs.webkit.org/show_bug.cgi?id=143658\n overrideNative(Math, 'imul', function imul(x, y) {\n return ES.Call(origImul, Math, arguments);\n });\n }\n\n // Promises\n // Simplest possible implementation; use a 3rd-party library if you\n // want the best possible speed and/or long stack traces.\n var PromiseShim = (function () {\n var setTimeout = globals.setTimeout;\n // some environments don't have setTimeout - no way to shim here.\n if (typeof setTimeout !== 'function' && typeof setTimeout !== 'object') { return; }\n\n ES.IsPromise = function (promise) {\n if (!ES.TypeIsObject(promise)) {\n return false;\n }\n if (typeof promise._promise === 'undefined') {\n return false; // uninitialized, or missing our hidden field.\n }\n return true;\n };\n\n // \"PromiseCapability\" in the spec is what most promise implementations\n // call a \"deferred\".\n var PromiseCapability = function (C) {\n if (!ES.IsConstructor(C)) {\n throw new TypeError('Bad promise constructor');\n }\n var capability = this;\n var resolver = function (resolve, reject) {\n if (capability.resolve !== void 0 || capability.reject !== void 0) {\n throw new TypeError('Bad Promise implementation!');\n }\n capability.resolve = resolve;\n capability.reject = reject;\n };\n // Initialize fields to inform optimizers about the object shape.\n capability.resolve = void 0;\n capability.reject = void 0;\n capability.promise = new C(resolver);\n if (!(ES.IsCallable(capability.resolve) && ES.IsCallable(capability.reject))) {\n throw new TypeError('Bad promise constructor');\n }\n };\n\n // find an appropriate setImmediate-alike\n var makeZeroTimeout;\n /*global window */\n if (typeof window !== 'undefined' && ES.IsCallable(window.postMessage)) {\n makeZeroTimeout = function () {\n // from http://dbaron.org/log/20100309-faster-timeouts\n var timeouts = [];\n var messageName = 'zero-timeout-message';\n var setZeroTimeout = function (fn) {\n _push(timeouts, fn);\n window.postMessage(messageName, '*');\n };\n var handleMessage = function (event) {\n if (event.source === window && event.data === messageName) {\n event.stopPropagation();\n if (timeouts.length === 0) { return; }\n var fn = _shift(timeouts);\n fn();\n }\n };\n window.addEventListener('message', handleMessage, true);\n return setZeroTimeout;\n };\n }\n var makePromiseAsap = function () {\n // An efficient task-scheduler based on a pre-existing Promise\n // implementation, which we can use even if we override the\n // global Promise below (in order to workaround bugs)\n // https://github.com/Raynos/observ-hash/issues/2#issuecomment-35857671\n var P = globals.Promise;\n var pr = P && P.resolve && P.resolve();\n return pr && function (task) {\n return pr.then(task);\n };\n };\n /*global process */\n var enqueue = ES.IsCallable(globals.setImmediate) ?\n globals.setImmediate :\n typeof process === 'object' && process.nextTick ? process.nextTick : makePromiseAsap() ||\n (ES.IsCallable(makeZeroTimeout) ? makeZeroTimeout() : function (task) { setTimeout(task, 0); }); // fallback\n\n // Constants for Promise implementation\n var PROMISE_IDENTITY = function (x) { return x; };\n var PROMISE_THROWER = function (e) { throw e; };\n var PROMISE_PENDING = 0;\n var PROMISE_FULFILLED = 1;\n var PROMISE_REJECTED = 2;\n // We store fulfill/reject handlers and capabilities in a single array.\n var PROMISE_FULFILL_OFFSET = 0;\n var PROMISE_REJECT_OFFSET = 1;\n var PROMISE_CAPABILITY_OFFSET = 2;\n // This is used in an optimization for chaining promises via then.\n var PROMISE_FAKE_CAPABILITY = {};\n\n var enqueuePromiseReactionJob = function (handler, capability, argument) {\n enqueue(function () {\n promiseReactionJob(handler, capability, argument);\n });\n };\n\n var promiseReactionJob = function (handler, promiseCapability, argument) {\n var handlerResult, f;\n if (promiseCapability === PROMISE_FAKE_CAPABILITY) {\n // Fast case, when we don't actually need to chain through to a\n // (real) promiseCapability.\n return handler(argument);\n }\n try {\n handlerResult = handler(argument);\n f = promiseCapability.resolve;\n } catch (e) {\n handlerResult = e;\n f = promiseCapability.reject;\n }\n f(handlerResult);\n };\n\n var fulfillPromise = function (promise, value) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n if (length > 0) {\n enqueuePromiseReactionJob(\n _promise.fulfillReactionHandler0,\n _promise.reactionCapability0,\n value\n );\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(\n _promise[idx + PROMISE_FULFILL_OFFSET],\n _promise[idx + PROMISE_CAPABILITY_OFFSET],\n value\n );\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n _promise.result = value;\n _promise.state = PROMISE_FULFILLED;\n _promise.reactionLength = 0;\n };\n\n var rejectPromise = function (promise, reason) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n if (length > 0) {\n enqueuePromiseReactionJob(\n _promise.rejectReactionHandler0,\n _promise.reactionCapability0,\n reason\n );\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(\n _promise[idx + PROMISE_REJECT_OFFSET],\n _promise[idx + PROMISE_CAPABILITY_OFFSET],\n reason\n );\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n _promise.result = reason;\n _promise.state = PROMISE_REJECTED;\n _promise.reactionLength = 0;\n };\n\n var createResolvingFunctions = function (promise) {\n var alreadyResolved = false;\n var resolve = function (resolution) {\n var then;\n if (alreadyResolved) { return; }\n alreadyResolved = true;\n if (resolution === promise) {\n return rejectPromise(promise, new TypeError('Self resolution'));\n }\n if (!ES.TypeIsObject(resolution)) {\n return fulfillPromise(promise, resolution);\n }\n try {\n then = resolution.then;\n } catch (e) {\n return rejectPromise(promise, e);\n }\n if (!ES.IsCallable(then)) {\n return fulfillPromise(promise, resolution);\n }\n enqueue(function () {\n promiseResolveThenableJob(promise, resolution, then);\n });\n };\n var reject = function (reason) {\n if (alreadyResolved) { return; }\n alreadyResolved = true;\n return rejectPromise(promise, reason);\n };\n return { resolve: resolve, reject: reject };\n };\n\n var optimizedThen = function (then, thenable, resolve, reject) {\n // Optimization: since we discard the result, we can pass our\n // own then implementation a special hint to let it know it\n // doesn't have to create it. (The PROMISE_FAKE_CAPABILITY\n // object is local to this implementation and unforgeable outside.)\n if (then === Promise$prototype$then) {\n _call(then, thenable, resolve, reject, PROMISE_FAKE_CAPABILITY);\n } else {\n _call(then, thenable, resolve, reject);\n }\n };\n var promiseResolveThenableJob = function (promise, thenable, then) {\n var resolvingFunctions = createResolvingFunctions(promise);\n var resolve = resolvingFunctions.resolve;\n var reject = resolvingFunctions.reject;\n try {\n optimizedThen(then, thenable, resolve, reject);\n } catch (e) {\n reject(e);\n }\n };\n\n var Promise$prototype, Promise$prototype$then;\n var Promise = (function () {\n var PromiseShim = function Promise(resolver) {\n if (!(this instanceof PromiseShim)) {\n throw new TypeError('Constructor Promise requires \"new\"');\n }\n if (this && this._promise) {\n throw new TypeError('Bad construction');\n }\n // see https://bugs.ecmascript.org/show_bug.cgi?id=2482\n if (!ES.IsCallable(resolver)) {\n throw new TypeError('not a valid resolver');\n }\n var promise = emulateES6construct(this, PromiseShim, Promise$prototype, {\n _promise: {\n result: void 0,\n state: PROMISE_PENDING,\n // The first member of the \"reactions\" array is inlined here,\n // since most promises only have one reaction.\n // We've also exploded the 'reaction' object to inline the\n // \"handler\" and \"capability\" fields, since both fulfill and\n // reject reactions share the same capability.\n reactionLength: 0,\n fulfillReactionHandler0: void 0,\n rejectReactionHandler0: void 0,\n reactionCapability0: void 0\n }\n });\n var resolvingFunctions = createResolvingFunctions(promise);\n var reject = resolvingFunctions.reject;\n try {\n resolver(resolvingFunctions.resolve, reject);\n } catch (e) {\n reject(e);\n }\n return promise;\n };\n return PromiseShim;\n }());\n Promise$prototype = Promise.prototype;\n\n var _promiseAllResolver = function (index, values, capability, remaining) {\n var alreadyCalled = false;\n return function (x) {\n if (alreadyCalled) { return; }\n alreadyCalled = true;\n values[index] = x;\n if ((--remaining.count) === 0) {\n var resolve = capability.resolve;\n resolve(values); // call w/ this===undefined\n }\n };\n };\n\n var performPromiseAll = function (iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var values = [];\n var remaining = { count: 1 };\n var next, nextValue;\n var index = 0;\n while (true) {\n try {\n next = ES.IteratorStep(it);\n if (next === false) {\n iteratorRecord.done = true;\n break;\n }\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n values[index] = void 0;\n var nextPromise = C.resolve(nextValue);\n var resolveElement = _promiseAllResolver(\n index,\n values,\n resultCapability,\n remaining\n );\n remaining.count += 1;\n optimizedThen(nextPromise.then, nextPromise, resolveElement, resultCapability.reject);\n index += 1;\n }\n if ((--remaining.count) === 0) {\n var resolve = resultCapability.resolve;\n resolve(values); // call w/ this===undefined\n }\n return resultCapability.promise;\n };\n\n var performPromiseRace = function (iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var next, nextValue, nextPromise;\n while (true) {\n try {\n next = ES.IteratorStep(it);\n if (next === false) {\n // NOTE: If iterable has no items, resulting promise will never\n // resolve; see:\n // https://github.com/domenic/promises-unwrapping/issues/75\n // https://bugs.ecmascript.org/show_bug.cgi?id=2515\n iteratorRecord.done = true;\n break;\n }\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n nextPromise = C.resolve(nextValue);\n optimizedThen(nextPromise.then, nextPromise, resultCapability.resolve, resultCapability.reject);\n }\n return resultCapability.promise;\n };\n\n defineProperties(Promise, {\n all: function all(iterable) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = { iterator: iterator, done: false };\n return performPromiseAll(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n\n race: function race(iterable) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = { iterator: iterator, done: false };\n return performPromiseRace(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n\n reject: function reject(reason) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n var capability = new PromiseCapability(C);\n var rejectFunc = capability.reject;\n rejectFunc(reason); // call with this===undefined\n return capability.promise;\n },\n\n resolve: function resolve(v) {\n // See https://esdiscuss.org/topic/fixing-promise-resolve for spec\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n if (ES.IsPromise(v)) {\n var constructor = v.constructor;\n if (constructor === C) {\n return v;\n }\n }\n var capability = new PromiseCapability(C);\n var resolveFunc = capability.resolve;\n resolveFunc(v); // call with this===undefined\n return capability.promise;\n }\n });\n\n defineProperties(Promise$prototype, {\n 'catch': function (onRejected) {\n return this.then(null, onRejected);\n },\n\n then: function then(onFulfilled, onRejected) {\n var promise = this;\n if (!ES.IsPromise(promise)) { throw new TypeError('not a promise'); }\n var C = ES.SpeciesConstructor(promise, Promise);\n var resultCapability;\n var returnValueIsIgnored = arguments.length > 2 && arguments[2] === PROMISE_FAKE_CAPABILITY;\n if (returnValueIsIgnored && C === Promise) {\n resultCapability = PROMISE_FAKE_CAPABILITY;\n } else {\n resultCapability = new PromiseCapability(C);\n }\n // PerformPromiseThen(promise, onFulfilled, onRejected, resultCapability)\n // Note that we've split the 'reaction' object into its two\n // components, \"capabilities\" and \"handler\"\n // \"capabilities\" is always equal to `resultCapability`\n var fulfillReactionHandler = ES.IsCallable(onFulfilled) ? onFulfilled : PROMISE_IDENTITY;\n var rejectReactionHandler = ES.IsCallable(onRejected) ? onRejected : PROMISE_THROWER;\n var _promise = promise._promise;\n var value;\n if (_promise.state === PROMISE_PENDING) {\n if (_promise.reactionLength === 0) {\n _promise.fulfillReactionHandler0 = fulfillReactionHandler;\n _promise.rejectReactionHandler0 = rejectReactionHandler;\n _promise.reactionCapability0 = resultCapability;\n } else {\n var idx = 3 * (_promise.reactionLength - 1);\n _promise[idx + PROMISE_FULFILL_OFFSET] = fulfillReactionHandler;\n _promise[idx + PROMISE_REJECT_OFFSET] = rejectReactionHandler;\n _promise[idx + PROMISE_CAPABILITY_OFFSET] = resultCapability;\n }\n _promise.reactionLength += 1;\n } else if (_promise.state === PROMISE_FULFILLED) {\n value = _promise.result;\n enqueuePromiseReactionJob(\n fulfillReactionHandler,\n resultCapability,\n value\n );\n } else if (_promise.state === PROMISE_REJECTED) {\n value = _promise.result;\n enqueuePromiseReactionJob(\n rejectReactionHandler,\n resultCapability,\n value\n );\n } else {\n throw new TypeError('unexpected Promise state');\n }\n return resultCapability.promise;\n }\n });\n // This helps the optimizer by ensuring that methods which take\n // capabilities aren't polymorphic.\n PROMISE_FAKE_CAPABILITY = new PromiseCapability(Promise);\n Promise$prototype$then = Promise$prototype.then;\n\n return Promise;\n }());\n\n // Chrome's native Promise has extra methods that it shouldn't have. Let's remove them.\n if (globals.Promise) {\n delete globals.Promise.accept;\n delete globals.Promise.defer;\n delete globals.Promise.prototype.chain;\n }\n\n if (typeof PromiseShim === 'function') {\n // export the Promise constructor.\n defineProperties(globals, { Promise: PromiseShim });\n // In Chrome 33 (and thereabouts) Promise is defined, but the\n // implementation is buggy in a number of ways. Let's check subclassing\n // support to see if we have a buggy implementation.\n var promiseSupportsSubclassing = supportsSubclassing(globals.Promise, function (S) {\n return S.resolve(42).then(function () {}) instanceof S;\n });\n var promiseIgnoresNonFunctionThenCallbacks = !throwsError(function () {\n return globals.Promise.reject(42).then(null, 5).then(null, noop);\n });\n var promiseRequiresObjectContext = throwsError(function () { return globals.Promise.call(3, noop); });\n // Promise.resolve() was errata'ed late in the ES6 process.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1170742\n // https://code.google.com/p/v8/issues/detail?id=4161\n // It serves as a proxy for a number of other bugs in early Promise\n // implementations.\n var promiseResolveBroken = (function (Promise) {\n var p = Promise.resolve(5);\n p.constructor = {};\n var p2 = Promise.resolve(p);\n try {\n p2.then(null, noop).then(null, noop); // avoid \"uncaught rejection\" warnings in console\n } catch (e) {\n return true; // v8 native Promises break here https://code.google.com/p/chromium/issues/detail?id=575314\n }\n return p === p2; // This *should* be false!\n }(globals.Promise));\n\n // Chrome 46 (probably older too) does not retrieve a thenable's .then synchronously\n var getsThenSynchronously = supportsDescriptors && (function () {\n var count = 0;\n // eslint-disable-next-line getter-return\n var thenable = Object.defineProperty({}, 'then', { get: function () { count += 1; } });\n Promise.resolve(thenable);\n return count === 1;\n }());\n\n var BadResolverPromise = function BadResolverPromise(executor) {\n var p = new Promise(executor);\n executor(3, function () {});\n this.then = p.then;\n this.constructor = BadResolverPromise;\n };\n BadResolverPromise.prototype = Promise.prototype;\n BadResolverPromise.all = Promise.all;\n // Chrome Canary 49 (probably older too) has some implementation bugs\n var hasBadResolverPromise = valueOrFalseIfThrows(function () {\n return !!BadResolverPromise.all([1, 2]);\n });\n\n if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks ||\n !promiseRequiresObjectContext || promiseResolveBroken ||\n !getsThenSynchronously || hasBadResolverPromise) {\n /* globals Promise: true */\n /* eslint-disable no-undef, no-global-assign */\n Promise = PromiseShim;\n /* eslint-enable no-undef, no-global-assign */\n /* globals Promise: false */\n overrideNative(globals, 'Promise', PromiseShim);\n }\n if (Promise.all.length !== 1) {\n var origAll = Promise.all;\n overrideNative(Promise, 'all', function all(iterable) {\n return ES.Call(origAll, this, arguments);\n });\n }\n if (Promise.race.length !== 1) {\n var origRace = Promise.race;\n overrideNative(Promise, 'race', function race(iterable) {\n return ES.Call(origRace, this, arguments);\n });\n }\n if (Promise.resolve.length !== 1) {\n var origResolve = Promise.resolve;\n overrideNative(Promise, 'resolve', function resolve(x) {\n return ES.Call(origResolve, this, arguments);\n });\n }\n if (Promise.reject.length !== 1) {\n var origReject = Promise.reject;\n overrideNative(Promise, 'reject', function reject(r) {\n return ES.Call(origReject, this, arguments);\n });\n }\n ensureEnumerable(Promise, 'all');\n ensureEnumerable(Promise, 'race');\n ensureEnumerable(Promise, 'resolve');\n ensureEnumerable(Promise, 'reject');\n addDefaultSpecies(Promise);\n }\n\n // Map and Set require a true ES5 environment\n // Their fast path also requires that the environment preserve\n // property insertion order, which is not guaranteed by the spec.\n var testOrder = function (a) {\n var b = keys(_reduce(a, function (o, k) {\n o[k] = true;\n return o;\n }, {}));\n return a.join(':') === b.join(':');\n };\n var preservesInsertionOrder = testOrder(['z', 'a', 'bb']);\n // some engines (eg, Chrome) only preserve insertion order for string keys\n var preservesNumericInsertionOrder = testOrder(['z', 1, 'a', '3', 2]);\n\n if (supportsDescriptors) {\n\n var fastkey = function fastkey(key, skipInsertionOrderCheck) {\n if (!skipInsertionOrderCheck && !preservesInsertionOrder) {\n return null;\n }\n if (isNullOrUndefined(key)) {\n return '^' + ES.ToString(key);\n } else if (typeof key === 'string') {\n return '$' + key;\n } else if (typeof key === 'number') {\n // note that -0 will get coerced to \"0\" when used as a property key\n if (!preservesNumericInsertionOrder) {\n return 'n' + key;\n }\n return key;\n } else if (typeof key === 'boolean') {\n return 'b' + key;\n }\n return null;\n };\n\n var emptyObject = function emptyObject() {\n // accomodate some older not-quite-ES5 browsers\n return Object.create ? Object.create(null) : {};\n };\n\n var addIterableToMap = function addIterableToMap(MapConstructor, map, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (entry) {\n if (!ES.TypeIsObject(entry)) {\n throw new TypeError('Iterator value ' + entry + ' is not an entry object');\n }\n map.set(entry[0], entry[1]);\n });\n } else if (iterable instanceof MapConstructor) {\n _call(MapConstructor.prototype.forEach, iterable, function (value, key) {\n map.set(key, value);\n });\n } else {\n var iter, adder;\n if (!isNullOrUndefined(iterable)) {\n adder = map.set;\n if (!ES.IsCallable(adder)) { throw new TypeError('bad map'); }\n iter = ES.GetIterator(iterable);\n }\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n if (next === false) { break; }\n var nextItem = next.value;\n try {\n if (!ES.TypeIsObject(nextItem)) {\n throw new TypeError('Iterator value ' + nextItem + ' is not an entry object');\n }\n _call(adder, map, nextItem[0], nextItem[1]);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n var addIterableToSet = function addIterableToSet(SetConstructor, set, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (value) {\n set.add(value);\n });\n } else if (iterable instanceof SetConstructor) {\n _call(SetConstructor.prototype.forEach, iterable, function (value) {\n set.add(value);\n });\n } else {\n var iter, adder;\n if (!isNullOrUndefined(iterable)) {\n adder = set.add;\n if (!ES.IsCallable(adder)) { throw new TypeError('bad set'); }\n iter = ES.GetIterator(iterable);\n }\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n if (next === false) { break; }\n var nextValue = next.value;\n try {\n _call(adder, set, nextValue);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n\n var collectionShims = {\n Map: (function () {\n\n var empty = {};\n\n var MapEntry = function MapEntry(key, value) {\n this.key = key;\n this.value = value;\n this.next = null;\n this.prev = null;\n };\n\n MapEntry.prototype.isRemoved = function isRemoved() {\n return this.key === empty;\n };\n\n var isMap = function isMap(map) {\n return !!map._es6map;\n };\n\n var requireMapSlot = function requireMapSlot(map, method) {\n if (!ES.TypeIsObject(map) || !isMap(map)) {\n throw new TypeError('Method Map.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(map));\n }\n };\n\n var MapIterator = function MapIterator(map, kind) {\n requireMapSlot(map, '[[MapIterator]]');\n this.head = map._head;\n this.i = this.head;\n this.kind = kind;\n };\n\n MapIterator.prototype = {\n isMapIterator: true,\n next: function next() {\n if (!this.isMapIterator) {\n throw new TypeError('Not a MapIterator');\n }\n var i = this.i;\n var kind = this.kind;\n var head = this.head;\n if (typeof this.i === 'undefined') {\n return iteratorResult();\n }\n while (i.isRemoved() && i !== head) {\n // back up off of removed entries\n i = i.prev;\n }\n // advance to next unreturned element.\n var result;\n while (i.next !== head) {\n i = i.next;\n if (!i.isRemoved()) {\n if (kind === 'key') {\n result = i.key;\n } else if (kind === 'value') {\n result = i.value;\n } else {\n result = [i.key, i.value];\n }\n this.i = i;\n return iteratorResult(result);\n }\n }\n // once the iterator is done, it is done forever.\n this.i = void 0;\n return iteratorResult();\n }\n };\n addIterator(MapIterator.prototype);\n\n var Map$prototype;\n var MapShim = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n if (this && this._es6map) {\n throw new TypeError('Bad construction');\n }\n var map = emulateES6construct(this, Map, Map$prototype, {\n _es6map: true,\n _head: null,\n _map: OrigMap ? new OrigMap() : null,\n _size: 0,\n _storage: emptyObject()\n });\n\n var head = new MapEntry(null, null);\n // circular doubly-linked list.\n /* eslint no-multi-assign: 1 */\n head.next = head.prev = head;\n map._head = head;\n\n // Optionally initialize map from iterable\n if (arguments.length > 0) {\n addIterableToMap(Map, map, arguments[0]);\n }\n return map;\n };\n Map$prototype = MapShim.prototype;\n\n Value.getter(Map$prototype, 'size', function () {\n if (typeof this._size === 'undefined') {\n throw new TypeError('size method called on incompatible Map');\n }\n return this._size;\n });\n\n defineProperties(Map$prototype, {\n get: function get(key) {\n requireMapSlot(this, 'get');\n var entry;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n entry = this._storage[fkey];\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n if (this._map) {\n // fast object key path\n entry = origMapGet.call(this._map, key);\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n var head = this._head;\n var i = head;\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return i.value;\n }\n }\n },\n\n has: function has(key) {\n requireMapSlot(this, 'has');\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n return typeof this._storage[fkey] !== 'undefined';\n }\n if (this._map) {\n // fast object key path\n return origMapHas.call(this._map, key);\n }\n var head = this._head;\n var i = head;\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return true;\n }\n }\n return false;\n },\n\n set: function set(key, value) {\n requireMapSlot(this, 'set');\n var head = this._head;\n var i = head;\n var entry;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] !== 'undefined') {\n this._storage[fkey].value = value;\n return this;\n } else {\n entry = this._storage[fkey] = new MapEntry(key, value); /* eslint no-multi-assign: 1 */\n i = head.prev;\n // fall through\n }\n } else if (this._map) {\n // fast object key path\n if (origMapHas.call(this._map, key)) {\n origMapGet.call(this._map, key).value = value;\n } else {\n entry = new MapEntry(key, value);\n origMapSet.call(this._map, key, entry);\n i = head.prev;\n // fall through\n }\n }\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.value = value;\n return this;\n }\n }\n entry = entry || new MapEntry(key, value);\n if (ES.SameValue(-0, key)) {\n entry.key = +0; // coerce -0 to +0 in entry\n }\n entry.next = this._head;\n entry.prev = this._head.prev;\n entry.prev.next = entry;\n entry.next.prev = entry;\n this._size += 1;\n return this;\n },\n\n 'delete': function (key) {\n requireMapSlot(this, 'delete');\n var head = this._head;\n var i = head;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] === 'undefined') {\n return false;\n }\n i = this._storage[fkey].prev;\n delete this._storage[fkey];\n // fall through\n } else if (this._map) {\n // fast object key path\n if (!origMapHas.call(this._map, key)) {\n return false;\n }\n i = origMapGet.call(this._map, key).prev;\n origMapDelete.call(this._map, key);\n // fall through\n }\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.key = empty;\n i.value = empty;\n i.prev.next = i.next;\n i.next.prev = i.prev;\n this._size -= 1;\n return true;\n }\n }\n return false;\n },\n\n clear: function clear() {\n /* eslint no-multi-assign: 1 */\n requireMapSlot(this, 'clear');\n this._map = OrigMap ? new OrigMap() : null;\n this._size = 0;\n this._storage = emptyObject();\n var head = this._head;\n var i = head;\n var p = i.next;\n while ((i = p) !== head) {\n i.key = empty;\n i.value = empty;\n p = i.next;\n i.next = i.prev = head;\n }\n head.next = head.prev = head;\n },\n\n keys: function keys() {\n requireMapSlot(this, 'keys');\n return new MapIterator(this, 'key');\n },\n\n values: function values() {\n requireMapSlot(this, 'values');\n return new MapIterator(this, 'value');\n },\n\n entries: function entries() {\n requireMapSlot(this, 'entries');\n return new MapIterator(this, 'key+value');\n },\n\n forEach: function forEach(callback) {\n requireMapSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var it = this.entries();\n for (var entry = it.next(); !entry.done; entry = it.next()) {\n if (context) {\n _call(callback, context, entry.value[1], entry.value[0], this);\n } else {\n callback(entry.value[1], entry.value[0], this);\n }\n }\n }\n });\n addIterator(Map$prototype, Map$prototype.entries);\n\n return MapShim;\n }()),\n\n Set: (function () {\n var isSet = function isSet(set) {\n return set._es6set && typeof set._storage !== 'undefined';\n };\n var requireSetSlot = function requireSetSlot(set, method) {\n if (!ES.TypeIsObject(set) || !isSet(set)) {\n // https://github.com/paulmillr/es6-shim/issues/176\n throw new TypeError('Set.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(set));\n }\n };\n\n // Creating a Map is expensive. To speed up the common case of\n // Sets containing only string or numeric keys, we use an object\n // as backing storage and lazily create a full Map only when\n // required.\n var Set$prototype;\n var SetShim = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n if (this && this._es6set) {\n throw new TypeError('Bad construction');\n }\n var set = emulateES6construct(this, Set, Set$prototype, {\n _es6set: true,\n '[[SetData]]': null,\n _storage: emptyObject()\n });\n if (!set._es6set) {\n throw new TypeError('bad set');\n }\n\n // Optionally initialize Set from iterable\n if (arguments.length > 0) {\n addIterableToSet(Set, set, arguments[0]);\n }\n return set;\n };\n Set$prototype = SetShim.prototype;\n\n var decodeKey = function (key) {\n var k = key;\n if (k === '^null') {\n return null;\n } else if (k === '^undefined') {\n return void 0;\n } else {\n var first = k.charAt(0);\n if (first === '$') {\n return _strSlice(k, 1);\n } else if (first === 'n') {\n return +_strSlice(k, 1);\n } else if (first === 'b') {\n return k === 'btrue';\n }\n }\n return +k;\n };\n // Switch from the object backing storage to a full Map.\n var ensureMap = function ensureMap(set) {\n if (!set['[[SetData]]']) {\n var m = new collectionShims.Map();\n set['[[SetData]]'] = m;\n _forEach(keys(set._storage), function (key) {\n var k = decodeKey(key);\n m.set(k, k);\n });\n set['[[SetData]]'] = m;\n }\n set._storage = null; // free old backing storage\n };\n\n Value.getter(SetShim.prototype, 'size', function () {\n requireSetSlot(this, 'size');\n if (this._storage) {\n return keys(this._storage).length;\n }\n ensureMap(this);\n return this['[[SetData]]'].size;\n });\n\n defineProperties(SetShim.prototype, {\n has: function has(key) {\n requireSetSlot(this, 'has');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n return !!this._storage[fkey];\n }\n ensureMap(this);\n return this['[[SetData]]'].has(key);\n },\n\n add: function add(key) {\n requireSetSlot(this, 'add');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n this._storage[fkey] = true;\n return this;\n }\n ensureMap(this);\n this['[[SetData]]'].set(key, key);\n return this;\n },\n\n 'delete': function (key) {\n requireSetSlot(this, 'delete');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n var hasFKey = _hasOwnProperty(this._storage, fkey);\n return (delete this._storage[fkey]) && hasFKey;\n }\n ensureMap(this);\n return this['[[SetData]]']['delete'](key);\n },\n\n clear: function clear() {\n requireSetSlot(this, 'clear');\n if (this._storage) {\n this._storage = emptyObject();\n }\n if (this['[[SetData]]']) {\n this['[[SetData]]'].clear();\n }\n },\n\n values: function values() {\n requireSetSlot(this, 'values');\n ensureMap(this);\n return new SetIterator(this['[[SetData]]'].values());\n },\n\n entries: function entries() {\n requireSetSlot(this, 'entries');\n ensureMap(this);\n return new SetIterator(this['[[SetData]]'].entries());\n },\n\n forEach: function forEach(callback) {\n requireSetSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var entireSet = this;\n ensureMap(entireSet);\n this['[[SetData]]'].forEach(function (value, key) {\n if (context) {\n _call(callback, context, key, key, entireSet);\n } else {\n callback(key, key, entireSet);\n }\n });\n }\n });\n defineProperty(SetShim.prototype, 'keys', SetShim.prototype.values, true);\n addIterator(SetShim.prototype, SetShim.prototype.values);\n\n var SetIterator = function SetIterator(it) {\n this.it = it;\n };\n SetIterator.prototype = {\n isSetIterator: true,\n next: function next() {\n if (!this.isSetIterator) {\n throw new TypeError('Not a SetIterator');\n }\n return this.it.next();\n }\n };\n addIterator(SetIterator.prototype);\n\n return SetShim;\n }())\n };\n\n var isGoogleTranslate = globals.Set && !Set.prototype['delete'] && Set.prototype.remove && Set.prototype.items && Set.prototype.map && Array.isArray(new Set().keys);\n if (isGoogleTranslate) {\n // special-case force removal of wildly invalid Set implementation in Google Translate iframes\n // see https://github.com/paulmillr/es6-shim/issues/438 / https://twitter.com/ljharb/status/849335573114363904\n globals.Set = collectionShims.Set;\n }\n if (globals.Map || globals.Set) {\n // Safari 8, for example, doesn't accept an iterable.\n var mapAcceptsArguments = valueOrFalseIfThrows(function () { return new Map([[1, 2]]).get(1) === 2; });\n if (!mapAcceptsArguments) {\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n var m = new OrigMap();\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n delete m.constructor;\n Object.setPrototypeOf(m, globals.Map.prototype);\n return m;\n };\n globals.Map.prototype = create(OrigMap.prototype);\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n var testMap = new Map();\n var mapUsesSameValueZero = (function () {\n // Chrome 38-42, node 0.11/0.12, iojs 1/2 also have a bug when the Map has a size > 4\n var m = new Map([[1, 0], [2, 0], [3, 0], [4, 0]]);\n m.set(-0, m);\n return m.get(0) === m && m.get(-0) === m && m.has(0) && m.has(-0);\n }());\n var mapSupportsChaining = testMap.set(1, 2) === testMap;\n if (!mapUsesSameValueZero || !mapSupportsChaining) {\n overrideNative(Map.prototype, 'set', function set(k, v) {\n _call(origMapSet, this, k === 0 ? 0 : k, v);\n return this;\n });\n }\n if (!mapUsesSameValueZero) {\n defineProperties(Map.prototype, {\n get: function get(k) {\n return _call(origMapGet, this, k === 0 ? 0 : k);\n },\n has: function has(k) {\n return _call(origMapHas, this, k === 0 ? 0 : k);\n }\n }, true);\n Value.preserveToString(Map.prototype.get, origMapGet);\n Value.preserveToString(Map.prototype.has, origMapHas);\n }\n var testSet = new Set();\n var setUsesSameValueZero = Set.prototype['delete'] && Set.prototype.add && Set.prototype.has && (function (s) {\n s['delete'](0);\n s.add(-0);\n return !s.has(0);\n }(testSet));\n var setSupportsChaining = testSet.add(1) === testSet;\n if (!setUsesSameValueZero || !setSupportsChaining) {\n var origSetAdd = Set.prototype.add;\n Set.prototype.add = function add(v) {\n _call(origSetAdd, this, v === 0 ? 0 : v);\n return this;\n };\n Value.preserveToString(Set.prototype.add, origSetAdd);\n }\n if (!setUsesSameValueZero) {\n var origSetHas = Set.prototype.has;\n Set.prototype.has = function has(v) {\n return _call(origSetHas, this, v === 0 ? 0 : v);\n };\n Value.preserveToString(Set.prototype.has, origSetHas);\n var origSetDel = Set.prototype['delete'];\n Set.prototype['delete'] = function SetDelete(v) {\n return _call(origSetDel, this, v === 0 ? 0 : v);\n };\n Value.preserveToString(Set.prototype['delete'], origSetDel);\n }\n var mapSupportsSubclassing = supportsSubclassing(globals.Map, function (M) {\n var m = new M([]);\n // Firefox 32 is ok with the instantiating the subclass but will\n // throw when the map is used.\n m.set(42, 42);\n return m instanceof M;\n });\n // without Object.setPrototypeOf, subclassing is not possible\n var mapFailsToSupportSubclassing = Object.setPrototypeOf && !mapSupportsSubclassing;\n var mapRequiresNew = (function () {\n try {\n return !(globals.Map() instanceof globals.Map);\n } catch (e) {\n return e instanceof TypeError;\n }\n }());\n if (globals.Map.length !== 0 || mapFailsToSupportSubclassing || !mapRequiresNew) {\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n var m = new OrigMap();\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n delete m.constructor;\n Object.setPrototypeOf(m, Map.prototype);\n return m;\n };\n globals.Map.prototype = OrigMap.prototype;\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n var setSupportsSubclassing = supportsSubclassing(globals.Set, function (S) {\n var s = new S([]);\n s.add(42, 42);\n return s instanceof S;\n });\n // without Object.setPrototypeOf, subclassing is not possible\n var setFailsToSupportSubclassing = Object.setPrototypeOf && !setSupportsSubclassing;\n var setRequiresNew = (function () {\n try {\n return !(globals.Set() instanceof globals.Set);\n } catch (e) {\n return e instanceof TypeError;\n }\n }());\n if (globals.Set.length !== 0 || setFailsToSupportSubclassing || !setRequiresNew) {\n var OrigSet = globals.Set;\n globals.Set = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n var s = new OrigSet();\n if (arguments.length > 0) {\n addIterableToSet(Set, s, arguments[0]);\n }\n delete s.constructor;\n Object.setPrototypeOf(s, Set.prototype);\n return s;\n };\n globals.Set.prototype = OrigSet.prototype;\n defineProperty(globals.Set.prototype, 'constructor', globals.Set, true);\n Value.preserveToString(globals.Set, OrigSet);\n }\n var newMap = new globals.Map();\n var mapIterationThrowsStopIterator = !valueOrFalseIfThrows(function () {\n return newMap.keys().next().done;\n });\n /*\n - In Firefox < 23, Map#size is a function.\n - In all current Firefox, Set#entries/keys/values & Map#clear do not exist\n - https://bugzilla.mozilla.org/show_bug.cgi?id=869996\n - In Firefox 24, Map and Set do not implement forEach\n - In Firefox 25 at least, Map and Set are callable without \"new\"\n */\n if (\n typeof globals.Map.prototype.clear !== 'function' ||\n new globals.Set().size !== 0 ||\n newMap.size !== 0 ||\n typeof globals.Map.prototype.keys !== 'function' ||\n typeof globals.Set.prototype.keys !== 'function' ||\n typeof globals.Map.prototype.forEach !== 'function' ||\n typeof globals.Set.prototype.forEach !== 'function' ||\n isCallableWithoutNew(globals.Map) ||\n isCallableWithoutNew(globals.Set) ||\n typeof newMap.keys().next !== 'function' || // Safari 8\n mapIterationThrowsStopIterator || // Firefox 25\n !mapSupportsSubclassing\n ) {\n defineProperties(globals, {\n Map: collectionShims.Map,\n Set: collectionShims.Set\n }, true);\n }\n\n if (globals.Set.prototype.keys !== globals.Set.prototype.values) {\n // Fixed in WebKit with https://bugs.webkit.org/show_bug.cgi?id=144190\n defineProperty(globals.Set.prototype, 'keys', globals.Set.prototype.values, true);\n }\n\n // Shim incomplete iterator implementations.\n addIterator(Object.getPrototypeOf((new globals.Map()).keys()));\n addIterator(Object.getPrototypeOf((new globals.Set()).keys()));\n\n if (functionsHaveNames && globals.Set.prototype.has.name !== 'has') {\n // Microsoft Edge v0.11.10074.0 is missing a name on Set#has\n var anonymousSetHas = globals.Set.prototype.has;\n overrideNative(globals.Set.prototype, 'has', function has(key) {\n return _call(anonymousSetHas, this, key);\n });\n }\n }\n defineProperties(globals, collectionShims);\n addDefaultSpecies(globals.Map);\n addDefaultSpecies(globals.Set);\n }\n\n var throwUnlessTargetIsObject = function throwUnlessTargetIsObject(target) {\n if (!ES.TypeIsObject(target)) {\n throw new TypeError('target must be an object');\n }\n };\n\n // Some Reflect methods are basically the same as\n // those on the Object global, except that a TypeError is thrown if\n // target isn't an object. As well as returning a boolean indicating\n // the success of the operation.\n var ReflectShims = {\n // Apply method in a functional form.\n apply: function apply() {\n return ES.Call(ES.Call, null, arguments);\n },\n\n // New operator in a functional form.\n construct: function construct(constructor, args) {\n if (!ES.IsConstructor(constructor)) {\n throw new TypeError('First argument must be a constructor.');\n }\n var newTarget = arguments.length > 2 ? arguments[2] : constructor;\n if (!ES.IsConstructor(newTarget)) {\n throw new TypeError('new.target must be a constructor.');\n }\n return ES.Construct(constructor, args, newTarget, 'internal');\n },\n\n // When deleting a non-existent or configurable property,\n // true is returned.\n // When attempting to delete a non-configurable property,\n // it will return false.\n deleteProperty: function deleteProperty(target, key) {\n throwUnlessTargetIsObject(target);\n if (supportsDescriptors) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (desc && !desc.configurable) {\n return false;\n }\n }\n\n // Will return true.\n return delete target[key];\n },\n\n has: function has(target, key) {\n throwUnlessTargetIsObject(target);\n return key in target;\n }\n };\n\n if (Object.getOwnPropertyNames) {\n Object.assign(ReflectShims, {\n // Basically the result of calling the internal [[OwnPropertyKeys]].\n // Concatenating propertyNames and propertySymbols should do the trick.\n // This should continue to work together with a Symbol shim\n // which overrides Object.getOwnPropertyNames and implements\n // Object.getOwnPropertySymbols.\n ownKeys: function ownKeys(target) {\n throwUnlessTargetIsObject(target);\n var keys = Object.getOwnPropertyNames(target);\n\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n _pushApply(keys, Object.getOwnPropertySymbols(target));\n }\n\n return keys;\n }\n });\n }\n\n var callAndCatchException = function ConvertExceptionToBoolean(func) {\n return !throwsError(func);\n };\n\n if (Object.preventExtensions) {\n Object.assign(ReflectShims, {\n isExtensible: function isExtensible(target) {\n throwUnlessTargetIsObject(target);\n return Object.isExtensible(target);\n },\n preventExtensions: function preventExtensions(target) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n return Object.preventExtensions(target);\n });\n }\n });\n }\n\n if (supportsDescriptors) {\n var internalGet = function get(target, key, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent === null) {\n return void 0;\n }\n\n return internalGet(parent, key, receiver);\n }\n\n if ('value' in desc) {\n return desc.value;\n }\n\n if (desc.get) {\n return ES.Call(desc.get, receiver);\n }\n\n return void 0;\n };\n\n var internalSet = function set(target, key, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent !== null) {\n return internalSet(parent, key, value, receiver);\n }\n\n desc = {\n value: void 0,\n writable: true,\n enumerable: true,\n configurable: true\n };\n }\n\n if ('value' in desc) {\n if (!desc.writable) {\n return false;\n }\n\n if (!ES.TypeIsObject(receiver)) {\n return false;\n }\n\n var existingDesc = Object.getOwnPropertyDescriptor(receiver, key);\n\n if (existingDesc) {\n return Reflect.defineProperty(receiver, key, {\n value: value\n });\n } else {\n return Reflect.defineProperty(receiver, key, {\n value: value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n\n if (desc.set) {\n _call(desc.set, receiver, value);\n return true;\n }\n\n return false;\n };\n\n Object.assign(ReflectShims, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n return Object.defineProperty(target, propertyKey, attributes);\n });\n },\n\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n throwUnlessTargetIsObject(target);\n return Object.getOwnPropertyDescriptor(target, propertyKey);\n },\n\n // Syntax in a functional form.\n get: function get(target, key) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 2 ? arguments[2] : target;\n\n return internalGet(target, key, receiver);\n },\n\n set: function set(target, key, value) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 3 ? arguments[3] : target;\n\n return internalSet(target, key, value, receiver);\n }\n });\n }\n\n if (Object.getPrototypeOf) {\n var objectDotGetPrototypeOf = Object.getPrototypeOf;\n ReflectShims.getPrototypeOf = function getPrototypeOf(target) {\n throwUnlessTargetIsObject(target);\n return objectDotGetPrototypeOf(target);\n };\n }\n\n if (Object.setPrototypeOf && ReflectShims.getPrototypeOf) {\n var willCreateCircularPrototype = function (object, lastProto) {\n var proto = lastProto;\n while (proto) {\n if (object === proto) {\n return true;\n }\n proto = ReflectShims.getPrototypeOf(proto);\n }\n return false;\n };\n\n Object.assign(ReflectShims, {\n // Sets the prototype of the given object.\n // Returns true on success, otherwise false.\n setPrototypeOf: function setPrototypeOf(object, proto) {\n throwUnlessTargetIsObject(object);\n if (proto !== null && !ES.TypeIsObject(proto)) {\n throw new TypeError('proto must be an object or null');\n }\n\n // If they already are the same, we're done.\n if (proto === Reflect.getPrototypeOf(object)) {\n return true;\n }\n\n // Cannot alter prototype if object not extensible.\n if (Reflect.isExtensible && !Reflect.isExtensible(object)) {\n return false;\n }\n\n // Ensure that we do not create a circular prototype chain.\n if (willCreateCircularPrototype(object, proto)) {\n return false;\n }\n\n Object.setPrototypeOf(object, proto);\n\n return true;\n }\n });\n }\n var defineOrOverrideReflectProperty = function (key, shim) {\n if (!ES.IsCallable(globals.Reflect[key])) {\n defineProperty(globals.Reflect, key, shim);\n } else {\n var acceptsPrimitives = valueOrFalseIfThrows(function () {\n globals.Reflect[key](1);\n globals.Reflect[key](NaN);\n globals.Reflect[key](true);\n return true;\n });\n if (acceptsPrimitives) {\n overrideNative(globals.Reflect, key, shim);\n }\n }\n };\n Object.keys(ReflectShims).forEach(function (key) {\n defineOrOverrideReflectProperty(key, ReflectShims[key]);\n });\n var originalReflectGetProto = globals.Reflect.getPrototypeOf;\n if (functionsHaveNames && originalReflectGetProto && originalReflectGetProto.name !== 'getPrototypeOf') {\n overrideNative(globals.Reflect, 'getPrototypeOf', function getPrototypeOf(target) {\n return _call(originalReflectGetProto, globals.Reflect, target);\n });\n }\n if (globals.Reflect.setPrototypeOf) {\n if (valueOrFalseIfThrows(function () {\n globals.Reflect.setPrototypeOf(1, {});\n return true;\n })) {\n overrideNative(globals.Reflect, 'setPrototypeOf', ReflectShims.setPrototypeOf);\n }\n }\n if (globals.Reflect.defineProperty) {\n if (!valueOrFalseIfThrows(function () {\n var basic = !globals.Reflect.defineProperty(1, 'test', { value: 1 });\n // \"extensible\" fails on Edge 0.12\n var extensible = typeof Object.preventExtensions !== 'function' || !globals.Reflect.defineProperty(Object.preventExtensions({}), 'test', {});\n return basic && extensible;\n })) {\n overrideNative(globals.Reflect, 'defineProperty', ReflectShims.defineProperty);\n }\n }\n if (globals.Reflect.construct) {\n if (!valueOrFalseIfThrows(function () {\n var F = function F() {};\n return globals.Reflect.construct(function () {}, [], F) instanceof F;\n })) {\n overrideNative(globals.Reflect, 'construct', ReflectShims.construct);\n }\n }\n\n if (String(new Date(NaN)) !== 'Invalid Date') {\n var dateToString = Date.prototype.toString;\n var shimmedDateToString = function toString() {\n var valueOf = +this;\n if (valueOf !== valueOf) {\n return 'Invalid Date';\n }\n return ES.Call(dateToString, this);\n };\n overrideNative(Date.prototype, 'toString', shimmedDateToString);\n }\n\n // Annex B HTML methods\n // http://www.ecma-international.org/ecma-262/6.0/#sec-additional-properties-of-the-string.prototype-object\n var stringHTMLshims = {\n anchor: function anchor(name) { return ES.CreateHTML(this, 'a', 'name', name); },\n big: function big() { return ES.CreateHTML(this, 'big', '', ''); },\n blink: function blink() { return ES.CreateHTML(this, 'blink', '', ''); },\n bold: function bold() { return ES.CreateHTML(this, 'b', '', ''); },\n fixed: function fixed() { return ES.CreateHTML(this, 'tt', '', ''); },\n fontcolor: function fontcolor(color) { return ES.CreateHTML(this, 'font', 'color', color); },\n fontsize: function fontsize(size) { return ES.CreateHTML(this, 'font', 'size', size); },\n italics: function italics() { return ES.CreateHTML(this, 'i', '', ''); },\n link: function link(url) { return ES.CreateHTML(this, 'a', 'href', url); },\n small: function small() { return ES.CreateHTML(this, 'small', '', ''); },\n strike: function strike() { return ES.CreateHTML(this, 'strike', '', ''); },\n sub: function sub() { return ES.CreateHTML(this, 'sub', '', ''); },\n sup: function sub() { return ES.CreateHTML(this, 'sup', '', ''); }\n };\n _forEach(Object.keys(stringHTMLshims), function (key) {\n var method = String.prototype[key];\n var shouldOverwrite = false;\n if (ES.IsCallable(method)) {\n var output = _call(method, '', ' \" ');\n var quotesCount = _concat([], output.match(/\"/g)).length;\n shouldOverwrite = output !== output.toLowerCase() || quotesCount > 2;\n } else {\n shouldOverwrite = true;\n }\n if (shouldOverwrite) {\n overrideNative(String.prototype, key, stringHTMLshims[key]);\n }\n });\n\n var JSONstringifiesSymbols = (function () {\n // Microsoft Edge v0.12 stringifies Symbols incorrectly\n if (!hasSymbols) { return false; } // Symbols are not supported\n var stringify = typeof JSON === 'object' && typeof JSON.stringify === 'function' ? JSON.stringify : null;\n if (!stringify) { return false; } // JSON.stringify is not supported\n if (typeof stringify(Symbol()) !== 'undefined') { return true; } // Symbols should become `undefined`\n if (stringify([Symbol()]) !== '[null]') { return true; } // Symbols in arrays should become `null`\n var obj = { a: Symbol() };\n obj[Symbol()] = true;\n if (stringify(obj) !== '{}') { return true; } // Symbol-valued keys *and* Symbol-valued properties should be omitted\n return false;\n }());\n var JSONstringifyAcceptsObjectSymbol = valueOrFalseIfThrows(function () {\n // Chrome 45 throws on stringifying object symbols\n if (!hasSymbols) { return true; } // Symbols are not supported\n return JSON.stringify(Object(Symbol())) === '{}' && JSON.stringify([Object(Symbol())]) === '[{}]';\n });\n if (JSONstringifiesSymbols || !JSONstringifyAcceptsObjectSymbol) {\n var origStringify = JSON.stringify;\n overrideNative(JSON, 'stringify', function stringify(value) {\n if (typeof value === 'symbol') { return; }\n var replacer;\n if (arguments.length > 1) {\n replacer = arguments[1];\n }\n var args = [value];\n if (!isArray(replacer)) {\n var replaceFn = ES.IsCallable(replacer) ? replacer : null;\n var wrappedReplacer = function (key, val) {\n var parsedValue = replaceFn ? _call(replaceFn, this, key, val) : val;\n if (typeof parsedValue !== 'symbol') {\n if (Type.symbol(parsedValue)) {\n return assignTo({})(parsedValue);\n } else {\n return parsedValue;\n }\n }\n };\n args.push(wrappedReplacer);\n } else {\n // create wrapped replacer that handles an array replacer?\n args.push(replacer);\n }\n if (arguments.length > 2) {\n args.push(arguments[2]);\n }\n return origStringify.apply(this, args);\n });\n }\n\n return globals;\n}));\n","// 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","const Lexer = require('./Lexer.js');\nconst Parser = require('./Parser.js');\nconst Renderer = require('./Renderer.js');\nconst TextRenderer = require('./TextRenderer.js');\nconst InlineLexer = require('./InlineLexer.js');\nconst Slugger = require('./Slugger.js');\nconst {\n merge,\n checkSanitizeDeprecation,\n escape\n} = require('./helpers.js');\nconst {\n getDefaults,\n changeDefaults,\n defaults\n} = require('./defaults.js');\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (callback || typeof opt === 'function') {\n if (!callback) {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n const highlight = opt.highlight;\n let tokens,\n pending,\n i = 0;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n pending = tokens.length;\n\n const done = function(err) {\n if (err) {\n opt.highlight = highlight;\n return callback(err);\n }\n\n let out;\n\n try {\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!pending) return done();\n\n for (; i < tokens.length; i++) {\n (function(token) {\n if (token.type !== 'code') {\n return --pending || done();\n }\n return highlight(token.text, token.lang, function(err, code) {\n if (err) return done(err);\n if (code == null || code === token.text) {\n return --pending || done();\n }\n token.text = code;\n token.escaped = true;\n --pending || done();\n });\n })(tokens[i]);\n }\n\n return;\n }\n try {\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n return Parser.parse(Lexer.lex(src, opt), opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if ((opt || marked.defaults).silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Expose\n */\n\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\n\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\n\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\n\nmarked.InlineLexer = InlineLexer;\nmarked.inlineLexer = InlineLexer.output;\n\nmarked.Slugger = Slugger;\n\nmarked.parse = marked;\n\nmodule.exports = marked;\n","const { defaults } = require('./defaults.js');\nconst { block } = require('./rules.js');\nconst {\n rtrim,\n splitCells,\n escape\n} = require('./helpers.js');\n\n/**\n * Block Lexer\n */\nmodule.exports = class Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.rules = block.normal;\n\n if (this.options.pedantic) {\n this.rules = block.pedantic;\n } else if (this.options.gfm) {\n this.rules = block.gfm;\n }\n }\n\n /**\n * Expose Block Rules\n */\n static get rules() {\n return block;\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n };\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n return this.token(src, true);\n };\n\n /**\n * Lexing\n */\n token(src, top) {\n src = src.replace(/^ +$/gm, '');\n let next,\n loose,\n cap,\n bull,\n b,\n item,\n listStart,\n listItems,\n t,\n space,\n i,\n tag,\n l,\n isordered,\n istask,\n ischecked;\n\n while (src) {\n // newline\n if (cap = this.rules.newline.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[0].length > 1) {\n this.tokens.push({\n type: 'space'\n });\n }\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n const lastToken = this.tokens[this.tokens.length - 1];\n src = src.substring(cap[0].length);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && lastToken.type === 'paragraph') {\n lastToken.text += '\\n' + cap[0].trimRight();\n } else {\n cap = cap[0].replace(/^ {4}/gm, '');\n this.tokens.push({\n type: 'code',\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(cap, '\\n')\n : cap\n });\n }\n continue;\n }\n\n // fences\n if (cap = this.rules.fences.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'code',\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: cap[3] || ''\n });\n continue;\n }\n\n // heading\n if (cap = this.rules.heading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[1].length,\n text: cap[2]\n });\n continue;\n }\n\n // table no leading pipe (gfm)\n if (cap = this.rules.nptable.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(item.cells[i], item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // hr\n if (cap = this.rules.hr.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'hr'\n });\n continue;\n }\n\n // blockquote\n if (cap = this.rules.blockquote.exec(src)) {\n src = src.substring(cap[0].length);\n\n this.tokens.push({\n type: 'blockquote_start'\n });\n\n cap = cap[0].replace(/^ *> ?/gm, '');\n\n // Pass `top` to keep the current\n // \"toplevel\" state. This is exactly\n // how markdown.pl works.\n this.token(cap, top);\n\n this.tokens.push({\n type: 'blockquote_end'\n });\n\n continue;\n }\n\n // list\n if (cap = this.rules.list.exec(src)) {\n src = src.substring(cap[0].length);\n bull = cap[2];\n isordered = bull.length > 1;\n\n listStart = {\n type: 'list_start',\n ordered: isordered,\n start: isordered ? +bull : '',\n loose: false\n };\n\n this.tokens.push(listStart);\n\n // Get each top-level item.\n cap = cap[0].match(this.rules.item);\n\n listItems = [];\n next = false;\n l = cap.length;\n i = 0;\n\n for (; i < l; i++) {\n item = cap[i];\n\n // Remove the list item's bullet\n // so it is seen as the next token.\n space = item.length;\n item = item.replace(/^ *([*+-]|\\d+\\.) */, '');\n\n // Outdent whatever the\n // list item contains. Hacky.\n if (~item.indexOf('\\n ')) {\n space -= item.length;\n item = !this.options.pedantic\n ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')\n : item.replace(/^ {1,4}/gm, '');\n }\n\n // Determine whether the next list item belongs here.\n // Backpedal if it does not belong in this list.\n if (i !== l - 1) {\n b = block.bullet.exec(cap[i + 1])[0];\n if (bull.length > 1 ? b.length === 1\n : (b.length > 1 || (this.options.smartLists && b !== bull))) {\n src = cap.slice(i + 1).join('\\n') + src;\n i = l - 1;\n }\n }\n\n // Determine whether item is loose or not.\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n // for discount behavior.\n loose = next || /\\n\\n(?!\\s*$)/.test(item);\n if (i !== l - 1) {\n next = item.charAt(item.length - 1) === '\\n';\n if (!loose) loose = next;\n }\n\n if (loose) {\n listStart.loose = true;\n }\n\n // Check for task list items\n istask = /^\\[[ xX]\\] /.test(item);\n ischecked = undefined;\n if (istask) {\n ischecked = item[1] !== ' ';\n item = item.replace(/^\\[[ xX]\\] +/, '');\n }\n\n t = {\n type: 'list_item_start',\n task: istask,\n checked: ischecked,\n loose: loose\n };\n\n listItems.push(t);\n this.tokens.push(t);\n\n // Recurse.\n this.token(item, false);\n\n this.tokens.push({\n type: 'list_item_end'\n });\n }\n\n if (listStart.loose) {\n l = listItems.length;\n i = 0;\n for (; i < l; i++) {\n listItems[i].loose = true;\n }\n }\n\n this.tokens.push({\n type: 'list_end'\n });\n\n continue;\n }\n\n // html\n if (cap = this.rules.html.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: this.options.sanitize\n ? 'paragraph'\n : 'html',\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]\n });\n continue;\n }\n\n // def\n if (top && (cap = this.rules.def.exec(src))) {\n src = src.substring(cap[0].length);\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n if (!this.tokens.links[tag]) {\n this.tokens.links[tag] = {\n href: cap[2],\n title: cap[3]\n };\n }\n continue;\n }\n\n // table (gfm)\n if (cap = this.rules.table.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(\n item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''),\n item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // lheading\n if (cap = this.rules.lheading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1]\n });\n continue;\n }\n\n // top-level paragraph\n if (top && (cap = this.rules.paragraph.exec(src))) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'paragraph',\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1]\n });\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n // Top-level should never reach here.\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'text',\n text: cap[0]\n });\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return this.tokens;\n };\n};\n","const Renderer = require('./Renderer.js');\nconst Slugger = require('./Slugger.js');\nconst InlineLexer = require('./InlineLexer.js');\nconst TextRenderer = require('./TextRenderer.js');\nconst { defaults } = require('./defaults.js');\nconst {\n merge,\n unescape\n} = require('./helpers.js');\n\n/**\n * Parsing & Compiling\n */\nmodule.exports = class Parser {\n constructor(options) {\n this.tokens = [];\n this.token = null;\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n };\n\n /**\n * Parse Loop\n */\n parse(tokens) {\n this.inline = new InlineLexer(tokens.links, this.options);\n // use an InlineLexer with a TextRenderer to extract pure text\n this.inlineText = new InlineLexer(\n tokens.links,\n merge({}, this.options, { renderer: new TextRenderer() })\n );\n this.tokens = tokens.reverse();\n\n let out = '';\n while (this.next()) {\n out += this.tok();\n }\n\n return out;\n };\n\n /**\n * Next Token\n */\n next() {\n this.token = this.tokens.pop();\n return this.token;\n };\n\n /**\n * Preview Next Token\n */\n peek() {\n return this.tokens[this.tokens.length - 1] || 0;\n };\n\n /**\n * Parse Text Tokens\n */\n parseText() {\n let body = this.token.text;\n\n while (this.peek().type === 'text') {\n body += '\\n' + this.next().text;\n }\n\n return this.inline.output(body);\n };\n\n /**\n * Parse Current Token\n */\n tok() {\n let body = '';\n switch (this.token.type) {\n case 'space': {\n return '';\n }\n case 'hr': {\n return this.renderer.hr();\n }\n case 'heading': {\n return this.renderer.heading(\n this.inline.output(this.token.text),\n this.token.depth,\n unescape(this.inlineText.output(this.token.text)),\n this.slugger);\n }\n case 'code': {\n return this.renderer.code(this.token.text,\n this.token.lang,\n this.token.escaped);\n }\n case 'table': {\n let header = '',\n i,\n row,\n cell,\n j;\n\n // header\n cell = '';\n for (i = 0; i < this.token.header.length; i++) {\n cell += this.renderer.tablecell(\n this.inline.output(this.token.header[i]),\n { header: true, align: this.token.align[i] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n for (i = 0; i < this.token.cells.length; i++) {\n row = this.token.cells[i];\n\n cell = '';\n for (j = 0; j < row.length; j++) {\n cell += this.renderer.tablecell(\n this.inline.output(row[j]),\n { header: false, align: this.token.align[j] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n return this.renderer.table(header, body);\n }\n case 'blockquote_start': {\n body = '';\n\n while (this.next().type !== 'blockquote_end') {\n body += this.tok();\n }\n\n return this.renderer.blockquote(body);\n }\n case 'list_start': {\n body = '';\n const ordered = this.token.ordered,\n start = this.token.start;\n\n while (this.next().type !== 'list_end') {\n body += this.tok();\n }\n\n return this.renderer.list(body, ordered, start);\n }\n case 'list_item_start': {\n body = '';\n const loose = this.token.loose;\n const checked = this.token.checked;\n const task = this.token.task;\n\n if (this.token.task) {\n if (loose) {\n if (this.peek().type === 'text') {\n const nextToken = this.peek();\n nextToken.text = this.renderer.checkbox(checked) + ' ' + nextToken.text;\n } else {\n this.tokens.push({\n type: 'text',\n text: this.renderer.checkbox(checked)\n });\n }\n } else {\n body += this.renderer.checkbox(checked);\n }\n }\n\n while (this.next().type !== 'list_item_end') {\n body += !loose && this.token.type === 'text'\n ? this.parseText()\n : this.tok();\n }\n return this.renderer.listitem(body, task, checked);\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n return this.renderer.html(this.token.text);\n }\n case 'paragraph': {\n return this.renderer.paragraph(this.inline.output(this.token.text));\n }\n case 'text': {\n return this.renderer.paragraph(this.parseText());\n }\n default: {\n const errMsg = 'Token with \"' + this.token.type + '\" type was not found.';\n if (this.options.silent) {\n console.log(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n }\n };\n};\n","/*! smooth-scroll v16.1.1 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */\nwindow.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(){if(\"function\"==typeof window.CustomEvent)return;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e})(),(function(){for(var r=0,e=[\"ms\",\"moz\",\"webkit\",\"o\"],t=0;t<e.length&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[e[t]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[e[t]+\"CancelAnimationFrame\"]||window[e[t]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,t){var n=(new Date).getTime(),o=Math.max(0,16-(n-r)),a=window.setTimeout((function(){e(n+o)}),o);return r=n+o,a}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})})(),(function(e,t){\"function\"==typeof define&&define.amd?define([],(function(){return t(e)})):\"object\"==typeof exports?module.exports=t(e):e.SmoothScroll=t(e)})(\"undefined\"!=typeof global?global:\"undefined\"!=typeof window?window:this,(function(q){\"use strict\";var I={ignore:\"[data-scroll-ignore]\",header:null,topOnEmptyHash:!0,speed:500,speedAsDuration:!1,durationMax:null,durationMin:null,clip:!0,offset:0,easing:\"easeInOutCubic\",customEasing:null,updateURL:!0,popstate:!0,emitEvents:!0},F=function(){var n={};return Array.prototype.forEach.call(arguments,(function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}})),n},r=function(e){\"#\"===e.charAt(0)&&(e=e.substr(1));for(var t,n=String(e),o=n.length,a=-1,r=\"\",i=n.charCodeAt(0);++a<o;){if(0===(t=n.charCodeAt(a)))throw new InvalidCharacterError(\"Invalid character: the input contains U+0000.\");1<=t&&t<=31||127==t||0===a&&48<=t&&t<=57||1===a&&48<=t&&t<=57&&45===i?r+=\"\\\\\"+t.toString(16)+\" \":r+=128<=t||45===t||95===t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122?n.charAt(a):\"\\\\\"+n.charAt(a)}return\"#\"+r},L=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},x=function(e){return e?(t=e,parseInt(q.getComputedStyle(t).height,10)+e.offsetTop):0;var t},H=function(e,t,n,o){if(t.emitEvents&&\"function\"==typeof q.CustomEvent){var a=new CustomEvent(e,{bubbles:!0,detail:{anchor:n,toggle:o}});document.dispatchEvent(a)}};return function(o,e){var A,a,O,C,M={};M.cancelScroll=function(e){cancelAnimationFrame(C),C=null,e||H(\"scrollCancel\",A)},M.animateScroll=function(i,c,e){M.cancelScroll();var s=F(A||I,e||{}),u=\"[object Number]\"===Object.prototype.toString.call(i),t=u||!i.tagName?null:i;if(u||t){var l=q.pageYOffset;s.header&&!O&&(O=document.querySelector(s.header));var n,o,a,m,r,d,f,h,p=x(O),g=u?i:(function(e,t,n,o){var a=0;if(e.offsetParent)for(;a+=e.offsetTop,e=e.offsetParent;);return a=Math.max(a-t-n,0),o&&(a=Math.min(a,L()-q.innerHeight)),a})(t,p,parseInt(\"function\"==typeof s.offset?s.offset(i,c):s.offset,10),s.clip),y=g-l,v=L(),w=0,S=(n=y,a=(o=s).speedAsDuration?o.speed:Math.abs(n/1e3*o.speed),o.durationMax&&a>o.durationMax?o.durationMax:o.durationMin&&a<o.durationMin?o.durationMin:parseInt(a,10)),E=function(e,t){var n,o,a,r=q.pageYOffset;if(e==t||r==t||(l<t&&q.innerHeight+r)>=v)return M.cancelScroll(!0),o=t,a=u,0===(n=i)&&document.body.focus(),a||(n.focus(),document.activeElement!==n&&(n.setAttribute(\"tabindex\",\"-1\"),n.focus(),n.style.outline=\"none\"),q.scrollTo(0,o)),H(\"scrollStop\",s,i,c),!(C=m=null)},b=function(e){var t,n,o;m||(m=e),w+=e-m,d=l+y*(n=r=1<(r=0===S?0:w/S)?1:r,\"easeInQuad\"===(t=s).easing&&(o=n*n),\"easeOutQuad\"===t.easing&&(o=n*(2-n)),\"easeInOutQuad\"===t.easing&&(o=n<.5?2*n*n:(4-2*n)*n-1),\"easeInCubic\"===t.easing&&(o=n*n*n),\"easeOutCubic\"===t.easing&&(o=--n*n*n+1),\"easeInOutCubic\"===t.easing&&(o=n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1),\"easeInQuart\"===t.easing&&(o=n*n*n*n),\"easeOutQuart\"===t.easing&&(o=1- --n*n*n*n),\"easeInOutQuart\"===t.easing&&(o=n<.5?8*n*n*n*n:1-8*--n*n*n*n),\"easeInQuint\"===t.easing&&(o=n*n*n*n*n),\"easeOutQuint\"===t.easing&&(o=1+--n*n*n*n*n),\"easeInOutQuint\"===t.easing&&(o=n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n),t.customEasing&&(o=t.customEasing(n)),o||n),q.scrollTo(0,Math.floor(d)),E(d,g)||(C=q.requestAnimationFrame(b),m=e)};0===q.pageYOffset&&q.scrollTo(0,0),f=i,h=s,u||history.pushState&&h.updateURL&&history.pushState({smoothScroll:JSON.stringify(h),anchor:f.id},document.title,f===document.documentElement?\"#top\":\"#\"+f.id),\"matchMedia\"in q&&q.matchMedia(\"(prefers-reduced-motion)\").matches?q.scrollTo(0,Math.floor(g)):(H(\"scrollStart\",s,i,c),M.cancelScroll(!0),q.requestAnimationFrame(b))}};var t=function(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&\"closest\"in e.target&&(a=e.target.closest(o))&&\"a\"===a.tagName.toLowerCase()&&!e.target.closest(A.ignore)&&a.hostname===q.location.hostname&&a.pathname===q.location.pathname&&/#/.test(a.href)){var t,n;try{t=r(decodeURIComponent(a.hash))}catch(e){t=r(a.hash)}if(console.log(t),\"#\"===t){if(!A.topOnEmptyHash)return;n=document.documentElement}else n=document.querySelector(t);(n=n||\"#top\"!==t?n:document.documentElement)&&(e.preventDefault(),(function(e){if(history.replaceState&&e.updateURL&&!history.state){var t=q.location.hash;t=t||\"\",history.replaceState({smoothScroll:JSON.stringify(e),anchor:t||q.pageYOffset},document.title,t||q.location.href)}})(A),M.animateScroll(n,a))}},n=function(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(A)){var t=history.state.anchor;\"string\"==typeof t&&t&&!(t=document.querySelector(r(history.state.anchor)))||M.animateScroll(t,null,{updateURL:!1})}};M.destroy=function(){A&&(document.removeEventListener(\"click\",t,!1),q.removeEventListener(\"popstate\",n,!1),M.cancelScroll(),C=O=a=A=null)};return (function(){if(!(\"querySelector\"in document&&\"addEventListener\"in q&&\"requestAnimationFrame\"in q&&\"closest\"in q.Element.prototype))throw\"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.\";M.destroy(),A=F(I,e||{}),O=A.header?document.querySelector(A.header):null,document.addEventListener(\"click\",t,!1),A.updateURL&&A.popstate&&q.addEventListener(\"popstate\",n,!1)})(),M}}));","var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = self.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.onabort = function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!self.fetch) {\n self.fetch = fetch\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n}\n","import { decorate, createDefaultSetter } from './private/utils';\nvar defineProperty = Object.defineProperty;\n\n\nfunction handleDescriptor(target, key, descriptor) {\n var configurable = descriptor.configurable,\n enumerable = descriptor.enumerable,\n initializer = descriptor.initializer,\n value = descriptor.value;\n\n return {\n configurable: configurable,\n enumerable: enumerable,\n\n get: function get() {\n // This happens if someone accesses the\n // property directly on the prototype\n if (this === target) {\n return;\n }\n\n var ret = initializer ? initializer.call(this) : value;\n\n defineProperty(this, key, {\n configurable: configurable,\n enumerable: enumerable,\n writable: true,\n value: ret\n });\n\n return ret;\n },\n\n\n set: createDefaultSetter(key)\n };\n}\n\nexport default function lazyInitialize() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _desc, _value, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;\n\nfunction _initDefineProp(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n}\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nimport lazyInitialize from '../lazy-initialize';\n\nvar defineProperty = Object.defineProperty,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n getOwnPropertySymbols = Object.getOwnPropertySymbols;\n\n\nexport function isDescriptor(desc) {\n if (!desc || !desc.hasOwnProperty) {\n return false;\n }\n\n var keys = ['value', 'initializer', 'get', 'set'];\n\n for (var i = 0, l = keys.length; i < l; i++) {\n if (desc.hasOwnProperty(keys[i])) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function decorate(handleDescriptor, entryArgs) {\n if (isDescriptor(entryArgs[entryArgs.length - 1])) {\n return handleDescriptor.apply(undefined, _toConsumableArray(entryArgs).concat([[]]));\n } else {\n return function () {\n return handleDescriptor.apply(undefined, _toConsumableArray(Array.prototype.slice.call(arguments)).concat([entryArgs]));\n };\n }\n}\n\nvar Meta = (_class = function Meta() {\n _classCallCheck(this, Meta);\n\n _initDefineProp(this, 'debounceTimeoutIds', _descriptor, this);\n\n _initDefineProp(this, 'throttleTimeoutIds', _descriptor2, this);\n\n _initDefineProp(this, 'throttlePreviousTimestamps', _descriptor3, this);\n\n _initDefineProp(this, 'throttleTrailingArgs', _descriptor4, this);\n\n _initDefineProp(this, 'profileLastRan', _descriptor5, this);\n}, (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'debounceTimeoutIds', [lazyInitialize], {\n enumerable: true,\n initializer: function initializer() {\n return {};\n }\n}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'throttleTimeoutIds', [lazyInitialize], {\n enumerable: true,\n initializer: function initializer() {\n return {};\n }\n}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, 'throttlePreviousTimestamps', [lazyInitialize], {\n enumerable: true,\n initializer: function initializer() {\n return {};\n }\n}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, 'throttleTrailingArgs', [lazyInitialize], {\n enumerable: true,\n initializer: function initializer() {\n return null;\n }\n}), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, 'profileLastRan', [lazyInitialize], {\n enumerable: true,\n initializer: function initializer() {\n return null;\n }\n})), _class);\n\n\nvar META_KEY = typeof Symbol === 'function' ? Symbol('__core_decorators__') : '__core_decorators__';\n\nexport function metaFor(obj) {\n if (obj.hasOwnProperty(META_KEY) === false) {\n defineProperty(obj, META_KEY, {\n // Defaults: NOT enumerable, configurable, or writable\n value: new Meta()\n });\n }\n\n return obj[META_KEY];\n}\n\nexport var getOwnKeys = getOwnPropertySymbols ? function (object) {\n return getOwnPropertyNames(object).concat(getOwnPropertySymbols(object));\n} : getOwnPropertyNames;\n\nexport function getOwnPropertyDescriptors(obj) {\n var descs = {};\n\n getOwnKeys(obj).forEach(function (key) {\n return descs[key] = getOwnPropertyDescriptor(obj, key);\n });\n\n return descs;\n}\n\nexport function createDefaultSetter(key) {\n return function set(newValue) {\n Object.defineProperty(this, key, {\n configurable: true,\n writable: true,\n // IS enumerable when reassigned by the outside word\n enumerable: true,\n value: newValue\n });\n\n return newValue;\n };\n}\n\nexport function bind(fn, context) {\n if (fn.bind) {\n return fn.bind(context);\n } else {\n return function __autobind__() {\n return fn.apply(context, arguments);\n };\n }\n}\n\nexport var warn = function () {\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) !== 'object' || !console || typeof console.warn !== 'function') {\n return function () {};\n } else {\n return bind(console.warn, console);\n }\n}();\n\nvar seenDeprecations = {};\nexport function internalDeprecation(msg) {\n if (seenDeprecations[msg] !== true) {\n seenDeprecations[msg] = true;\n warn('DEPRECATION: ' + msg);\n }\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { decorate } from './private/utils';\n\nvar GENERIC_FUNCTION_ERROR = '{child} does not properly override {parent}';\nvar FUNCTION_REGEXP = /^function ([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*)?(\\([^\\)]*\\))[\\s\\S]+$/;\n\nvar SyntaxErrorReporter = function () {\n _createClass(SyntaxErrorReporter, [{\n key: '_getTopic',\n value: function _getTopic(descriptor) {\n if (descriptor === undefined) {\n return null;\n }\n\n if ('value' in descriptor) {\n return descriptor.value;\n }\n\n if ('get' in descriptor) {\n return descriptor.get;\n }\n\n if ('set' in descriptor) {\n return descriptor.set;\n }\n }\n }, {\n key: '_extractTopicSignature',\n value: function _extractTopicSignature(topic) {\n switch (typeof topic === 'undefined' ? 'undefined' : _typeof(topic)) {\n case 'function':\n return this._extractFunctionSignature(topic);\n default:\n return this.key;\n }\n }\n }, {\n key: '_extractFunctionSignature',\n value: function _extractFunctionSignature(fn) {\n var _this = this;\n\n return fn.toString().replace(FUNCTION_REGEXP, function (match) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.key;\n var params = arguments[2];\n return name + params;\n });\n }\n }, {\n key: 'key',\n get: function get() {\n return this.childDescriptor.key;\n }\n }, {\n key: 'parentNotation',\n get: function get() {\n return this.parentKlass.constructor.name + '#' + this.parentPropertySignature;\n }\n }, {\n key: 'childNotation',\n get: function get() {\n return this.childKlass.constructor.name + '#' + this.childPropertySignature;\n }\n }, {\n key: 'parentTopic',\n get: function get() {\n return this._getTopic(this.parentDescriptor);\n }\n }, {\n key: 'childTopic',\n get: function get() {\n return this._getTopic(this.childDescriptor);\n }\n }, {\n key: 'parentPropertySignature',\n get: function get() {\n return this._extractTopicSignature(this.parentTopic);\n }\n }, {\n key: 'childPropertySignature',\n get: function get() {\n return this._extractTopicSignature(this.childTopic);\n }\n }]);\n\n function SyntaxErrorReporter(parentKlass, childKlass, parentDescriptor, childDescriptor) {\n _classCallCheck(this, SyntaxErrorReporter);\n\n this.parentKlass = parentKlass;\n this.childKlass = childKlass;\n this.parentDescriptor = parentDescriptor;\n this.childDescriptor = childDescriptor;\n }\n\n _createClass(SyntaxErrorReporter, [{\n key: 'assert',\n value: function assert(condition) {\n var msg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n if (condition !== true) {\n this.error(GENERIC_FUNCTION_ERROR + msg);\n }\n }\n }, {\n key: 'error',\n value: function error(msg) {\n var _this2 = this;\n\n msg = msg\n // Replace lazily, because they actually might not\n // be available in all cases\n .replace('{parent}', function (m) {\n return _this2.parentNotation;\n }).replace('{child}', function (m) {\n return _this2.childNotation;\n });\n throw new SyntaxError(msg);\n }\n }]);\n\n return SyntaxErrorReporter;\n}();\n\nfunction getDescriptorType(descriptor) {\n if (descriptor.hasOwnProperty('value')) {\n return 'data';\n }\n\n if (descriptor.hasOwnProperty('get') || descriptor.hasOwnProperty('set')) {\n return 'accessor';\n }\n\n // If none of them exist, browsers treat it as\n // a data descriptor with a value of `undefined`\n return 'data';\n}\n\nfunction checkFunctionSignatures(parent, child, reporter) {\n reporter.assert(parent.length === child.length);\n}\n\nfunction checkDataDescriptors(parent, child, reporter) {\n var parentValueType = _typeof(parent.value);\n var childValueType = _typeof(child.value);\n\n if (parentValueType === 'undefined' && childValueType === 'undefined') {\n // class properties can be any expression, which isn't ran until the\n // the instance is created, so we can't reliably get type information\n // for them yet (per spec). Perhaps when Babel includes flow-type info\n // in runtime? Tried regex solutions, but super hacky and only feasible\n // on primitives, which is confusing for usage...\n reporter.error('descriptor values are both undefined. (class properties are are not currently supported)\\'');\n }\n\n if (parentValueType !== childValueType) {\n var isFunctionOverUndefined = childValueType === 'function' && parentValueType === undefined;\n // Even though we don't support class properties, this\n // will still handle more than just functions, just in case.\n // Shadowing an undefined value is an error if the inherited\n // value was undefined (usually a class property, not a method)\n if (isFunctionOverUndefined || parentValueType !== undefined) {\n reporter.error('value types do not match. {parent} is \"' + parentValueType + '\", {child} is \"' + childValueType + '\"');\n }\n }\n\n // Switch, in preparation for supporting more types\n switch (childValueType) {\n case 'function':\n checkFunctionSignatures(parent.value, child.value, reporter);\n break;\n\n default:\n reporter.error('Unexpected error. Please file a bug with: {parent} is \"' + parentValueType + '\", {child} is \"' + childValueType + '\"');\n break;\n }\n}\n\nfunction checkAccessorDescriptors(parent, child, reporter) {\n var parentHasGetter = typeof parent.get === 'function';\n var childHasGetter = typeof child.get === 'function';\n var parentHasSetter = typeof parent.set === 'function';\n var childHasSetter = typeof child.set === 'function';\n\n if (parentHasGetter || childHasGetter) {\n if (!parentHasGetter && parentHasSetter) {\n reporter.error('{parent} is setter but {child} is getter');\n }\n\n if (!childHasGetter && childHasSetter) {\n reporter.error('{parent} is getter but {child} is setter');\n }\n\n checkFunctionSignatures(parent.get, child.get, reporter);\n }\n\n if (parentHasSetter || childHasSetter) {\n if (!parentHasSetter && parentHasGetter) {\n reporter.error('{parent} is getter but {child} is setter');\n }\n\n if (!childHasSetter && childHasGetter) {\n reporter.error('{parent} is setter but {child} is getter');\n }\n\n checkFunctionSignatures(parent.set, child.set, reporter);\n }\n}\n\nfunction checkDescriptors(parent, child, reporter) {\n var parentType = getDescriptorType(parent);\n var childType = getDescriptorType(child);\n\n if (parentType !== childType) {\n reporter.error('descriptor types do not match. {parent} is \"' + parentType + '\", {child} is \"' + childType + '\"');\n }\n\n switch (childType) {\n case 'data':\n checkDataDescriptors(parent, child, reporter);\n break;\n\n case 'accessor':\n checkAccessorDescriptors(parent, child, reporter);\n break;\n }\n}\n\nvar suggestionTransforms = [function (key) {\n return key.toLowerCase();\n}, function (key) {\n return key.toUpperCase();\n}, function (key) {\n return key + 's';\n}, function (key) {\n return key.slice(0, -1);\n}, function (key) {\n return key.slice(1, key.length);\n}];\n\nfunction findPossibleAlternatives(superKlass, key) {\n for (var i = 0, l = suggestionTransforms.length; i < l; i++) {\n var fn = suggestionTransforms[i];\n var suggestion = fn(key);\n\n if (suggestion in superKlass) {\n return suggestion;\n }\n }\n\n return null;\n}\n\nfunction handleDescriptor(target, key, descriptor) {\n descriptor.key = key;\n var superKlass = Object.getPrototypeOf(target);\n var superDescriptor = Object.getOwnPropertyDescriptor(superKlass, key);\n var reporter = new SyntaxErrorReporter(superKlass, target, superDescriptor, descriptor);\n\n if (superDescriptor === undefined) {\n var suggestedKey = findPossibleAlternatives(superKlass, key);\n var suggestion = suggestedKey ? '\\n\\n Did you mean \"' + suggestedKey + '\"?' : '';\n reporter.error('No descriptor matching {child} was found on the prototype chain.' + suggestion);\n }\n\n checkDescriptors(superDescriptor, descriptor, reporter);\n\n return descriptor;\n}\n\nexport default function override() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport { decorate, warn } from './private/utils';\n\nvar DEFAULT_MSG = 'This function will be removed in future versions.';\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n msg = _ref2$ === undefined ? DEFAULT_MSG : _ref2$,\n _ref2$2 = _ref2[1],\n options = _ref2$2 === undefined ? {} : _ref2$2;\n\n if (typeof descriptor.value !== 'function') {\n throw new SyntaxError('Only functions can be marked as deprecated');\n }\n\n var methodSignature = target.constructor.name + '#' + key;\n\n if (options.url) {\n msg += '\\n\\n See ' + options.url + ' for more details.\\n\\n';\n }\n\n return _extends({}, descriptor, {\n value: function deprecationWrapper() {\n warn('DEPRECATION ' + methodSignature + ': ' + msg);\n return descriptor.value.apply(this, arguments);\n }\n });\n}\n\nexport default function deprecate() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { decorate } from './private/utils';\n\nfunction suppressedWarningNoop() {\n // Warnings are currently suppressed via @suppressWarnings\n}\n\nfunction applyWithoutWarnings(context, fn, args) {\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) === 'object') {\n var nativeWarn = console.warn;\n console.warn = suppressedWarningNoop;\n var ret = fn.apply(context, args);\n console.warn = nativeWarn;\n return ret;\n } else {\n return fn.apply(context, args);\n }\n}\n\nfunction handleDescriptor(target, key, descriptor) {\n return _extends({}, descriptor, {\n value: function suppressWarningsWrapper() {\n return applyWithoutWarnings(this, descriptor.value, arguments);\n }\n });\n}\n\nexport default function suppressWarnings() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { decorate, internalDeprecation } from './private/utils';\n\nfunction toObject(cache, value) {\n if (value === Object(value)) {\n return value;\n }\n return cache[value] || (cache[value] = {});\n}\n\nfunction applyAndCache(context, fn, args, cache, signature) {\n var ret = fn.apply(context, args);\n cache[signature] = ret;\n return ret;\n}\n\nfunction metaForDescriptor(descriptor) {\n var fn = void 0,\n wrapKey = void 0;\n\n // This is ugly code, but way faster than other\n // ways I tried that *looked* pretty\n\n if (descriptor.value) {\n fn = descriptor.value;\n wrapKey = 'value';\n } else if (descriptor.get) {\n fn = descriptor.get;\n wrapKey = 'get';\n } else if (descriptor.set) {\n fn = descriptor.set;\n wrapKey = 'set';\n }\n\n return { fn: fn, wrapKey: wrapKey };\n}\n\nfunction handleDescriptor(target, key, descriptor) {\n var _metaForDescriptor = metaForDescriptor(descriptor),\n fn = _metaForDescriptor.fn,\n wrapKey = _metaForDescriptor.wrapKey;\n\n var argumentCache = new WeakMap();\n var signatureCache = Object.create(null);\n var primativeRefCache = Object.create(null);\n var argumentIdCounter = 0;\n\n return _extends({}, descriptor, _defineProperty({}, wrapKey, function memoizeWrapper() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var signature = '0';\n\n for (var i = 0, l = args.length; i < l; i++) {\n var arg = args[i];\n var argRef = toObject(primativeRefCache, arg);\n var argKey = argumentCache.get(argRef);\n\n if (argKey === undefined) {\n argKey = ++argumentIdCounter;\n argumentCache.set(argRef, argKey);\n }\n\n signature += argKey;\n }\n\n return signatureCache[signature] || applyAndCache(this, fn, arguments, signatureCache, signature);\n }));\n}\n\nexport default function memoize() {\n internalDeprecation('@memoize is deprecated and will be removed shortly. Use @memoize from lodash-decorators.\\n\\n https://www.npmjs.com/package/lodash-decorators');\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return decorate(handleDescriptor, args);\n}","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nimport { decorate, createDefaultSetter, getOwnPropertyDescriptors, getOwnKeys, bind } from './private/utils';\nvar defineProperty = Object.defineProperty,\n getPrototypeOf = Object.getPrototypeOf;\n\n\nvar mapStore = void 0;\n\nfunction getBoundSuper(obj, fn) {\n if (typeof WeakMap === 'undefined') {\n throw new Error('Using @autobind on ' + fn.name + '() requires WeakMap support due to its use of super.' + fn.name + '()\\n See https://github.com/jayphelps/core-decorators.js/issues/20');\n }\n\n if (!mapStore) {\n mapStore = new WeakMap();\n }\n\n if (mapStore.has(obj) === false) {\n mapStore.set(obj, new WeakMap());\n }\n\n var superStore = mapStore.get(obj);\n\n if (superStore.has(fn) === false) {\n superStore.set(fn, bind(fn, obj));\n }\n\n return superStore.get(fn);\n}\n\nfunction autobindClass(klass) {\n var descs = getOwnPropertyDescriptors(klass.prototype);\n var keys = getOwnKeys(descs);\n\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n var desc = descs[key];\n\n if (typeof desc.value !== 'function' || key === 'constructor') {\n continue;\n }\n\n defineProperty(klass.prototype, key, autobindMethod(klass.prototype, key, desc));\n }\n}\n\nfunction autobindMethod(target, key, _ref) {\n var fn = _ref.value,\n configurable = _ref.configurable,\n enumerable = _ref.enumerable;\n\n if (typeof fn !== 'function') {\n throw new SyntaxError('@autobind can only be used on functions, not: ' + fn);\n }\n\n var constructor = target.constructor;\n\n\n return {\n configurable: configurable,\n enumerable: enumerable,\n\n get: function get() {\n // Class.prototype.key lookup\n // Someone accesses the property directly on the prototype on which it is\n // actually defined on, i.e. Class.prototype.hasOwnProperty(key)\n if (this === target) {\n return fn;\n }\n\n // Class.prototype.key lookup\n // Someone accesses the property directly on a prototype but it was found\n // up the chain, not defined directly on it\n // i.e. Class.prototype.hasOwnProperty(key) == false && key in Class.prototype\n if (this.constructor !== constructor && getPrototypeOf(this).constructor === constructor) {\n return fn;\n }\n\n // Autobound method calling super.sameMethod() which is also autobound and so on.\n if (this.constructor !== constructor && key in this.constructor.prototype) {\n return getBoundSuper(this, fn);\n }\n\n var boundFn = bind(fn, this);\n\n defineProperty(this, key, {\n configurable: true,\n writable: true,\n // NOT enumerable when it's a bound method\n enumerable: false,\n value: boundFn\n });\n\n return boundFn;\n },\n\n set: createDefaultSetter(key)\n };\n}\n\nfunction handle(args) {\n if (args.length === 1) {\n return autobindClass.apply(undefined, _toConsumableArray(args));\n } else {\n return autobindMethod.apply(undefined, _toConsumableArray(args));\n }\n}\n\nexport default function autobind() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 0) {\n return function () {\n return handle(arguments);\n };\n } else {\n return handle(args);\n }\n}","import { decorate } from './private/utils';\n\nfunction handleDescriptor(target, key, descriptor) {\n descriptor.writable = false;\n return descriptor;\n}\n\nexport default function readonly() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","import { decorate } from './private/utils';\n\nfunction handleDescriptor(target, key, descriptor) {\n descriptor.enumerable = true;\n return descriptor;\n}\n\nexport default function enumerable() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","import { decorate } from './private/utils';\n\nfunction handleDescriptor(target, key, descriptor) {\n descriptor.enumerable = false;\n return descriptor;\n}\n\nexport default function nonenumerable() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","import { decorate } from './private/utils';\n\nfunction handleDescriptor(target, key, descriptor) {\n descriptor.configurable = false;\n return descriptor;\n}\n\nexport default function nonconfigurable() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport { decorate, metaFor, internalDeprecation } from './private/utils';\n\nvar DEFAULT_TIMEOUT = 300;\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n wait = _ref2$ === undefined ? DEFAULT_TIMEOUT : _ref2$,\n _ref2$2 = _ref2[1],\n immediate = _ref2$2 === undefined ? false : _ref2$2;\n\n var callback = descriptor.value;\n\n if (typeof callback !== 'function') {\n throw new SyntaxError('Only functions can be debounced');\n }\n\n return _extends({}, descriptor, {\n value: function value() {\n var _this = this;\n\n var _metaFor = metaFor(this),\n debounceTimeoutIds = _metaFor.debounceTimeoutIds;\n\n var timeout = debounceTimeoutIds[key];\n var callNow = immediate && !timeout;\n var args = arguments;\n\n clearTimeout(timeout);\n\n debounceTimeoutIds[key] = setTimeout(function () {\n delete debounceTimeoutIds[key];\n if (!immediate) {\n callback.apply(_this, args);\n }\n }, wait);\n\n if (callNow) {\n callback.apply(this, args);\n }\n }\n });\n}\n\nexport default function debounce() {\n internalDeprecation('@debounce is deprecated and will be removed shortly. Use @debounce from lodash-decorators.\\n\\n https://www.npmjs.com/package/lodash-decorators');\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport { decorate, metaFor, internalDeprecation } from './private/utils';\n\nvar DEFAULT_TIMEOUT = 300;\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n wait = _ref2$ === undefined ? DEFAULT_TIMEOUT : _ref2$,\n _ref2$2 = _ref2[1],\n options = _ref2$2 === undefined ? {} : _ref2$2;\n\n var callback = descriptor.value;\n\n if (typeof callback !== 'function') {\n throw new SyntaxError('Only functions can be throttled');\n }\n\n if (options.leading !== false) {\n options.leading = true;\n }\n\n if (options.trailing !== false) {\n options.trailing = true;\n }\n\n return _extends({}, descriptor, {\n value: function value() {\n var _this = this;\n\n var meta = metaFor(this);\n var throttleTimeoutIds = meta.throttleTimeoutIds,\n throttlePreviousTimestamps = meta.throttlePreviousTimestamps;\n\n var timeout = throttleTimeoutIds[key];\n // last execute timestamp\n var previous = throttlePreviousTimestamps[key] || 0;\n var now = Date.now();\n\n if (options.trailing) {\n meta.throttleTrailingArgs = arguments;\n }\n\n // if first be called and disable the execution on the leading edge\n // set last execute timestamp to now\n if (!previous && options.leading === false) {\n previous = now;\n }\n\n var remaining = wait - (now - previous);\n\n if (remaining <= 0) {\n clearTimeout(timeout);\n delete throttleTimeoutIds[key];\n throttlePreviousTimestamps[key] = now;\n callback.apply(this, arguments);\n } else if (!timeout && options.trailing) {\n throttleTimeoutIds[key] = setTimeout(function () {\n throttlePreviousTimestamps[key] = options.leading === false ? 0 : Date.now();\n delete throttleTimeoutIds[key];\n callback.apply(_this, meta.throttleTrailingArgs);\n // don't leak memory!\n meta.throttleTrailingArgs = null;\n }, remaining);\n }\n }\n });\n}\n\nexport default function throttle() {\n internalDeprecation('@throttle is deprecated and will be removed shortly. Use @throttle from lodash-decorators.\\n\\n https://www.npmjs.com/package/lodash-decorators');\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nimport { decorate as _decorate, createDefaultSetter } from './private/utils';\nvar defineProperty = Object.defineProperty;\n\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _toArray(_ref),\n decorator = _ref2[0],\n args = _ref2.slice(1);\n\n var configurable = descriptor.configurable,\n enumerable = descriptor.enumerable,\n writable = descriptor.writable;\n\n var originalGet = descriptor.get;\n var originalSet = descriptor.set;\n var originalValue = descriptor.value;\n var isGetter = !!originalGet;\n\n return {\n configurable: configurable,\n enumerable: enumerable,\n get: function get() {\n var fn = isGetter ? originalGet.call(this) : originalValue;\n var value = decorator.call.apply(decorator, [this, fn].concat(_toConsumableArray(args)));\n\n if (isGetter) {\n return value;\n } else {\n var desc = {\n configurable: configurable,\n enumerable: enumerable\n };\n\n desc.value = value;\n desc.writable = writable;\n\n defineProperty(this, key, desc);\n\n return value;\n }\n },\n\n set: isGetter ? originalSet : createDefaultSetter()\n };\n}\n\nexport default function decorate() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _decorate(handleDescriptor, args);\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { getOwnPropertyDescriptors, getOwnKeys, internalDeprecation } from './private/utils';\n\nvar defineProperty = Object.defineProperty,\n getPrototypeOf = Object.getPrototypeOf;\n\n\nfunction buggySymbol(symbol) {\n return Object.prototype.toString.call(symbol) === '[object Symbol]' && (typeof symbol === 'undefined' ? 'undefined' : _typeof(symbol)) === 'object';\n}\n\nfunction hasProperty(prop, obj) {\n // We have to traverse manually prototypes' chain for polyfilled ES6 Symbols\n // like \"in\" operator does.\n // I.e.: Babel 5 Symbol polyfill stores every created symbol in Object.prototype.\n // That's why we cannot use construction like \"prop in obj\" to check, if needed\n // prop actually exists in given object/prototypes' chain.\n if (buggySymbol(prop)) {\n do {\n if (obj === Object.prototype) {\n // Polyfill assigns undefined as value for stored symbol key.\n // We can assume in this special case if there is nothing assigned it doesn't exist.\n return typeof obj[prop] !== 'undefined';\n }\n if (obj.hasOwnProperty(prop)) {\n return true;\n }\n } while (obj = getPrototypeOf(obj));\n return false;\n } else {\n return prop in obj;\n }\n}\n\nfunction handleClass(target, mixins) {\n if (!mixins.length) {\n throw new SyntaxError('@mixin() class ' + target.name + ' requires at least one mixin as an argument');\n }\n\n for (var i = 0, l = mixins.length; i < l; i++) {\n var descs = getOwnPropertyDescriptors(mixins[i]);\n var keys = getOwnKeys(descs);\n\n for (var j = 0, k = keys.length; j < k; j++) {\n var key = keys[j];\n\n if (!hasProperty(key, target.prototype)) {\n defineProperty(target.prototype, key, descs[key]);\n }\n }\n }\n}\n\nexport default function mixin() {\n for (var _len = arguments.length, mixins = Array(_len), _key = 0; _key < _len; _key++) {\n mixins[_key] = arguments[_key];\n }\n\n internalDeprecation('@mixin is deprecated and will be removed shortly. Use @mixin from lodash-decorators.\\n\\n https://www.npmjs.com/package/lodash-decorators');\n\n if (typeof mixins[0] === 'function') {\n return handleClass(mixins[0], []);\n } else {\n return function (target) {\n return handleClass(target, mixins);\n };\n }\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport { decorate } from './private/utils';\n\nvar labels = {};\n\n// Exported for mocking in tests\nexport var defaultConsole = {\n time: console.time ? console.time.bind(console) : function (label) {\n labels[label] = new Date();\n },\n timeEnd: console.timeEnd ? console.timeEnd.bind(console) : function (label) {\n var timeNow = new Date();\n var timeTaken = timeNow - labels[label];\n delete labels[label];\n console.log(label + ': ' + timeTaken + 'ms');\n }\n};\n\nvar count = 0;\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n prefix = _ref2$ === undefined ? null : _ref2$,\n _ref2$2 = _ref2[1],\n console = _ref2$2 === undefined ? defaultConsole : _ref2$2;\n\n var fn = descriptor.value;\n\n if (prefix === null) {\n prefix = target.constructor.name + '.' + key;\n }\n\n if (typeof fn !== 'function') {\n throw new SyntaxError('@time can only be used on functions, not: ' + fn);\n }\n\n return _extends({}, descriptor, {\n value: function value() {\n var label = prefix + '-' + count;\n count++;\n console.time(label);\n\n try {\n return fn.apply(this, arguments);\n } finally {\n console.timeEnd(label);\n }\n }\n });\n}\n\nexport default function time() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport { decorate } from './private/utils';\nvar getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n\nfunction handleDescriptor(target, key, descriptor) {\n var superKlass = getPrototypeOf(target);\n var superDesc = getOwnPropertyDescriptor(superKlass, key);\n\n return _extends({}, superDesc, {\n value: descriptor.value,\n initializer: descriptor.initializer,\n get: descriptor.get || superDesc.get,\n set: descriptor.set || superDesc.set\n });\n}\n\nexport default function extendDescriptor() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport { decorate, metaFor, warn, bind } from './private/utils';\n\nvar oc = console;\n\n// Exported for mocking in tests\nexport var defaultConsole = {\n profile: console.profile ? bind(console.profile, console) : function () {},\n profileEnd: console.profileEnd ? bind(console.profileEnd, console) : function () {},\n warn: warn\n};\n\nfunction handleDescriptor(target, key, descriptor, _ref) {\n var _ref2 = _slicedToArray(_ref, 3),\n _ref2$ = _ref2[0],\n prefix = _ref2$ === undefined ? null : _ref2$,\n _ref2$2 = _ref2[1],\n onceThrottleOrFunction = _ref2$2 === undefined ? false : _ref2$2,\n _ref2$3 = _ref2[2],\n console = _ref2$3 === undefined ? defaultConsole : _ref2$3;\n\n if (!profile.__enabled) {\n if (!profile.__warned) {\n console.warn('console.profile is not supported. All @profile decorators are disabled.');\n profile.__warned = true;\n }\n return descriptor;\n }\n\n var fn = descriptor.value;\n\n if (prefix === null) {\n prefix = target.constructor.name + '.' + key;\n }\n\n if (typeof fn !== 'function') {\n throw new SyntaxError('@profile can only be used on functions, not: ' + fn);\n }\n\n return _extends({}, descriptor, {\n value: function value() {\n var now = Date.now();\n var meta = metaFor(this);\n if (onceThrottleOrFunction === true && !meta.profileLastRan || onceThrottleOrFunction === false || typeof onceThrottleOrFunction === 'number' && now - meta.profileLastRan > onceThrottleOrFunction || typeof onceThrottleOrFunction === 'function' && onceThrottleOrFunction.apply(this, arguments)) {\n console.profile(prefix);\n meta.profileLastRan = now;\n }\n\n try {\n return fn.apply(this, arguments);\n } finally {\n console.profileEnd(prefix);\n }\n }\n });\n}\n\nexport default function profile() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return decorate(handleDescriptor, args);\n}\n\n// Only Chrome, Firefox, and Edge support profile.\n// Exposing properties for testing.\nprofile.__enabled = !!console.profile;\nprofile.__warned = false;","var defineProperty = Object.defineProperty,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n\nexport default function applyDecorators(Class, props) {\n var prototype = Class.prototype;\n\n\n for (var key in props) {\n var decorators = props[key];\n\n for (var i = 0, l = decorators.length; i < l; i++) {\n var decorator = decorators[i];\n\n defineProperty(prototype, key, decorator(prototype, key, getOwnPropertyDescriptor(prototype, key)));\n }\n }\n\n return Class;\n}","/**\n * core-decorators.js\n * (c) 2017 Jay Phelps and contributors\n * MIT Licensed\n * https://github.com/jayphelps/core-decorators.js\n * @license\n */\nexport { default as override } from './override';\nexport { default as deprecate, default as deprecated } from './deprecate';\nexport { default as suppressWarnings } from './suppress-warnings';\nexport { default as memoize } from './memoize';\nexport { default as autobind } from './autobind';\nexport { default as readonly } from './readonly';\nexport { default as enumerable } from './enumerable';\nexport { default as nonenumerable } from './nonenumerable';\nexport { default as nonconfigurable } from './nonconfigurable';\nexport { default as debounce } from './debounce';\nexport { default as throttle } from './throttle';\nexport { default as decorate } from './decorate';\nexport { default as mixin, default as mixins } from './mixin';\nexport { default as lazyInitialize } from './lazy-initialize';\nexport { default as time } from './time';\nexport { default as extendDescriptor } from './extendDescriptor';\nexport { default as profile } from './profile';\n\n// Helper to apply decorators to a class without transpiler support\nexport { default as applyDecorators } from './applyDecorators';"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/routers/bookmarks.router.js b/dist/routers/bookmarks.router.js index 1ce7a07..3fbb131 100644 --- a/dist/routers/bookmarks.router.js +++ b/dist/routers/bookmarks.router.js @@ -16,6 +16,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", { value: true }); const core_decorators_1 = require("core-decorators"); +const config_1 = require("../core/config"); const db_1 = require("../core/db"); const exception_1 = require("../core/exception"); const server_1 = require("../core/server"); @@ -24,7 +25,7 @@ const base_router_1 = require("../routers/base.router"); class BookmarksRouter extends base_router_1.default { // Initialises the routes for this router implementation initRoutes() { - this.app.use('/bookmarks', this.router); + this.app.use(`${config_1.default.get().server.relativePath}bookmarks`, this.router); this.createRoute(server_1.ApiVerb.post, '/', { '~1.0.0': this.createBookmarks_v1, // tslint:disable-next-line:object-literal-sort-keys diff --git a/dist/routers/bookmarks.router.js.map b/dist/routers/bookmarks.router.js.map index b2f39a5..c47c53e 100644 --- a/dist/routers/bookmarks.router.js.map +++ b/dist/routers/bookmarks.router.js.map @@ -1 +1 @@ -{"version":3,"file":"bookmarks.router.js","sourceRoot":"","sources":["../../src/routers/bookmarks.router.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bookmarks.router.js","sourceRoot":"","sources":["../../src/routers/bookmarks.router.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/routers/docs.router.js b/dist/routers/docs.router.js index 5062ddb..cd7a6b4 100644 --- a/dist/routers/docs.router.js +++ b/dist/routers/docs.router.js @@ -2,12 +2,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); const express = require("express"); const path = require("path"); +const config_1 = require("../core/config"); const base_router_1 = require("../routers/base.router"); // Implementation of routes for API documentation class DocsRouter extends base_router_1.default { // Initialises the routes for this router implementation initRoutes() { - this.app.use('/', express.static(path.join(__dirname, '../docs'))); + this.app.use(config_1.default.get().server.relativePath, express.static(path.join(__dirname, '../docs'))); } } exports.default = DocsRouter; diff --git a/dist/routers/docs.router.js.map b/dist/routers/docs.router.js.map index f4684f6..02db20d 100644 --- a/dist/routers/docs.router.js.map +++ b/dist/routers/docs.router.js.map @@ -1 +1 @@ -{"version":3,"file":"docs.router.js","sourceRoot":"","sources":["../../src/routers/docs.router.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AACnC,6BAA6B;AAC7B,wDAAgE;AAEhE,iDAAiD;AACjD,MAAqB,UAAW,SAAQ,qBAAgB;IACtD,wDAAwD;IACjD,UAAU;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;CACF;AALD,6BAKC"} \ No newline at end of file +{"version":3,"file":"docs.router.js","sourceRoot":"","sources":["../../src/routers/docs.router.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AACnC,6BAA6B;AAC7B,2CAAoC;AACpC,wDAAgE;AAEhE,iDAAiD;AACjD,MAAqB,UAAW,SAAQ,qBAAgB;IACtD,wDAAwD;IACjD,UAAU;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAClG,CAAC;CACF;AALD,6BAKC"} \ No newline at end of file diff --git a/dist/routers/info.router.js b/dist/routers/info.router.js index cdd3271..916fab6 100644 --- a/dist/routers/info.router.js +++ b/dist/routers/info.router.js @@ -16,13 +16,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", { value: true }); const core_decorators_1 = require("core-decorators"); +const config_1 = require("../core/config"); const server_1 = require("../core/server"); const base_router_1 = require("../routers/base.router"); // Implementation of routes for service info operations class InfoRouter extends base_router_1.default { // Initialises the routes for this router implementation initRoutes() { - this.app.use('/info', this.router); + this.app.use(`${config_1.default.get().server.relativePath}info`, this.router); this.createRoute(server_1.ApiVerb.get, '/', { '^1.0.0': this.getInfo }); } // Gets service info such as status, version, etc diff --git a/dist/routers/info.router.js.map b/dist/routers/info.router.js.map index 2c8d00f..cea3f50 100644 --- a/dist/routers/info.router.js.map +++ b/dist/routers/info.router.js.map @@ -1 +1 @@ -{"version":3,"file":"info.router.js","sourceRoot":"","sources":["../../src/routers/info.router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAA2C;AAE3C,2CAAyC;AACzC,wDAAgE;AAGhE,uDAAuD;AACvD,MAAqB,UAAW,SAAQ,qBAAuB;IAC7D,wDAAwD;IACjD,UAAU;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,gBAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,iDAAiD;IAEnC,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;;YACnE,IAAI;gBACF,sEAAsE;gBACtE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpD,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACvB;YACD,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACX;QACH,CAAC;KAAA;CACF;AAVC;IADC,0BAAQ;yCAUR;AAlBH,6BAmBC"} \ No newline at end of file +{"version":3,"file":"info.router.js","sourceRoot":"","sources":["../../src/routers/info.router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAA2C;AAE3C,2CAAoC;AACpC,2CAAyC;AACzC,wDAAgE;AAGhE,uDAAuD;AACvD,MAAqB,UAAW,SAAQ,qBAAuB;IAC7D,wDAAwD;IACjD,UAAU;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,gBAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,CAAC,gBAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,iDAAiD;IAEnC,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;;YACnE,IAAI;gBACF,sEAAsE;gBACtE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpD,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACvB;YACD,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACX;QACH,CAAC;KAAA;CACF;AAVC;IADC,0BAAQ;yCAUR;AAlBH,6BAmBC"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3b878e3..d43c07f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,9 +44,9 @@ } }, "@sinonjs/samsam": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-4.2.1.tgz", - "integrity": "sha512-7+5S4C4wpug5pzHS+z/63+XUwsH7dtyYELDafoT1QnfruFh7eFjlDWwZXltUB0GLk6y5eMeAt34Bjx8wJ4KfSA==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-4.2.2.tgz", + "integrity": "sha512-z9o4LZUzSD9Hl22zV38aXNykgFeVj8acqfFabCY6FY83n/6s/XwNJyYYldz6/9lBJanpno9h+oL6HTISkviweA==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -212,9 +212,9 @@ } }, "@types/mongoose": { - "version": "5.5.38", - "resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.5.38.tgz", - "integrity": "sha512-W+vLJ4t0DUQhnV/ivLBLVCOvx3UnU/HgrKrEeHCUwE9VGDTdoOQOgOTiElErf+ome9zZUek6VZil5t7HfJvO+w==", + "version": "5.5.41", + "resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.5.41.tgz", + "integrity": "sha512-Hg8amaVUUUk7iB0TXJ2Ki1Agb4IuJag5R6U5i1H+b+1wclf93NLOEPemmbd4Bc9ZqOtVUmjPIc00SwCqEHTbVQ==", "dev": true, "requires": { "@types/mongodb": "*", @@ -892,9 +892,9 @@ "dev": true }, "aws4": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", - "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", "dev": true }, "balanced-match": { @@ -990,6 +990,15 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz", + "integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", @@ -2007,8 +2016,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cors": { "version": "2.8.5", @@ -2172,9 +2180,9 @@ } }, "css-loader": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.1.tgz", - "integrity": "sha512-+ybmv7sVxxNEenQhkifQDvny/1iNQM7YooJbSfVUdQQvisyg1aKIqgGjCjoFSyVLJMp17z9rfZFQaR5HGHcMbw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz", + "integrity": "sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA==", "dev": true, "requires": { "camelcase": "^5.3.1", @@ -2265,9 +2273,9 @@ } }, "schema-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.1.tgz", - "integrity": "sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", + "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", "dev": true, "requires": { "ajv": "^6.10.2", @@ -2705,6 +2713,11 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, + "denque": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", + "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -5174,8 +5187,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", @@ -5794,13 +5806,14 @@ } }, "mocha": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz", - "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.0.0.tgz", + "integrity": "sha512-CirsOPbO3jU86YKjjMzFLcXIb5YiGLUrjrXFHoJ3e2z9vWiaZVCZQ2+gtRGMPWF+nFhN6AWwLM/juzAQ6KRkbA==", "dev": true, "requires": { "ansi-colors": "3.2.3", "browser-stdout": "1.3.1", + "chokidar": "3.3.0", "debug": "3.2.6", "diff": "3.5.0", "escape-string-regexp": "1.0.5", @@ -5813,7 +5826,7 @@ "minimatch": "3.0.4", "mkdirp": "0.5.1", "ms": "2.1.1", - "node-environment-flags": "1.0.5", + "node-environment-flags": "1.0.6", "object.assign": "4.1.0", "strip-json-comments": "2.0.1", "supports-color": "6.0.0", @@ -5830,6 +5843,37 @@ "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", "dev": true }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -5844,18 +5888,45 @@ "path-is-absolute": "^1.0.0" } }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, "supports-color": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", @@ -5900,11 +5971,13 @@ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, "mongodb": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.1.tgz", - "integrity": "sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.1.tgz", + "integrity": "sha512-kpxt4/OfGZ3x9Py+c81yWARLFE3L5UDczF6319Xq0c+pp+8rrzqRiJKjhRAY261JorlRqtrpp7ROK2wCAMA4sw==", "requires": { + "bl": "^2.2.0", "bson": "^1.1.1", + "denque": "^1.4.1", "require_optional": "^1.0.1", "safe-buffer": "^5.1.2", "saslprep": "^1.0.0" @@ -5918,9 +5991,9 @@ } }, "mongoose": { - "version": "5.8.4", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.8.4.tgz", - "integrity": "sha512-jQjLckUILEQUqBuG+ihjtA9OLmrqcIG5n+vaeHpR++TG8/ug5yy5ogkDnybTSq8Ql5OORud3+OCOc2Uw96q32w==", + "version": "5.8.9", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.8.9.tgz", + "integrity": "sha512-gRazoLTQ0yuv4bk2z+nZEarKCyJ7WilFBkgrRqpOczUZUhk3i/FCe0rp8Mjc87dGXaHx54j8AjPJ0UKqJDXWMA==", "requires": { "bson": "~1.1.1", "kareem": "2.3.1", @@ -5935,6 +6008,17 @@ "sliced": "1.0.1" }, "dependencies": { + "mongodb": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.1.tgz", + "integrity": "sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA==", + "requires": { + "bson": "^1.1.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -6180,9 +6264,9 @@ "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==" }, "node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", "dev": true, "requires": { "object.getownpropertydescriptors": "^2.0.3", @@ -6294,9 +6378,9 @@ } }, "node-sass": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz", - "integrity": "sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", + "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", "dev": true, "requires": { "async-foreach": "^0.1.3", @@ -7605,8 +7689,7 @@ "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "promise-inflight": { "version": "1.0.1", @@ -7841,7 +7924,6 @@ "version": "2.3.5", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", "integrity": "sha1-tPhQA6k4y7bsvOKhJPsQEr0ag40=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -8369,8 +8451,7 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", - "dev": true + "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" }, "safe-json-stringify": { "version": "1.1.0", @@ -8530,15 +8611,15 @@ } }, "sass-loader": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.0.tgz", - "integrity": "sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", + "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", "dev": true, "requires": { "clone-deep": "^4.0.1", "loader-utils": "^1.2.3", "neo-async": "^2.6.1", - "schema-utils": "^2.1.0", + "schema-utils": "^2.6.1", "semver": "^6.3.0" }, "dependencies": { @@ -8605,9 +8686,9 @@ "dev": true }, "schema-utils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.4.1.tgz", - "integrity": "sha512-RqYLpkPZX5Oc3fw/kHHHyP56fg5Y+XBpIpV8nCg0znIALfq3OH+Ea9Hfeac9BAMwG5IICltiZ0vxFvJQONfA5w==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", + "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", "dev": true, "requires": { "ajv": "^6.10.2", @@ -8895,24 +8976,24 @@ } }, "sinon": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-8.0.2.tgz", - "integrity": "sha512-8W1S7BnCyvk7SK+Xi15B1QAVLuS81G/NGmWefPb31+ly6xI3fXaug/g5oUdfc8+7ruC4Ay51AxuLlYm8diq6kA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-8.1.0.tgz", + "integrity": "sha512-6/05TR+8QhEgTbyMWaConm8iPL609Eno7SqToPq63wC/jS/6NMEI4NxqtzlLkk3r/KcZT9xPXQodH0oJ917Hbg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0", "@sinonjs/formatio": "^4.0.1", - "@sinonjs/samsam": "^4.2.1", - "diff": "^4.0.1", + "@sinonjs/samsam": "^4.2.2", + "diff": "^4.0.2", "lolex": "^5.1.2", "nise": "^3.0.1", "supports-color": "^7.1.0" }, "dependencies": { "diff": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", - "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "has-flag": { @@ -8944,9 +9025,9 @@ "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" }, "smooth-scroll": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/smooth-scroll/-/smooth-scroll-16.1.0.tgz", - "integrity": "sha512-V5b8ekIekZ3xJ6f0sPsLgEbN5YT8gX0Q6yNjZXTKgqjH9dBGadZ0P50fhP0rLRBGifc44qfI3rnWNM+lebhJag==" + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/smooth-scroll/-/smooth-scroll-16.1.1.tgz", + "integrity": "sha512-HjBehaqC7gf113z8dTiLKkWzgaVjzxnnNeUme37q0ijieB47bA5Z1LAubb11EY9hcHvsS/xzpN+kWF3eNEoifQ==" }, "snapdragon": { "version": "0.8.2", @@ -9526,7 +9607,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -9710,9 +9790,9 @@ } }, "terser-webpack-plugin": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.1.tgz", - "integrity": "sha512-dNxivOXmDgZqrGxOttBH6B4xaxT4zNC+Xd+2K8jwGDMK5q2CZI+KZMA1AAnSRT+BTRvuzKsDx+fpxzPAmAMVcA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.2.tgz", + "integrity": "sha512-SmvB/6gtEPv+CJ88MH5zDOsZdKXPS/Uzv2//e90+wM1IHFUhsguPKEILgzqrM1nQ4acRXN/SV4Obr55SXC+0oA==", "dev": true, "requires": { "cacache": "^13.0.1", @@ -9868,9 +9948,9 @@ } }, "schema-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.1.tgz", - "integrity": "sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", + "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", "dev": true, "requires": { "ajv": "^6.10.2", @@ -10112,22 +10192,22 @@ } }, "ts-node": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.5.4.tgz", - "integrity": "sha512-izbVCRV68EasEPQ8MSIGBNK9dc/4sYJJKYA+IarMQct1RtEot6Xp0bXuClsbUSnKpg50ho+aOAx8en5c+y4OFw==", + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.6.2.tgz", + "integrity": "sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg==", "dev": true, "requires": { "arg": "^4.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.6", - "yn": "^3.0.0" + "yn": "3.1.1" }, "dependencies": { "diff": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", - "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true } } @@ -10244,9 +10324,9 @@ "integrity": "sha512-Cq0slVsJ0uR1BmV9XCtIV2fJ3lr3vKsGTi4NyRX94Fkvwf/J3nh++NGpZ6gN5P+AzKetZEUifdpM5EQ2HCvb5g==" }, "typescript": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", - "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==", + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", + "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", "dev": true }, "typescript-tslint-plugin": { @@ -10444,8 +10524,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.0", @@ -10469,9 +10548,9 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "uuid-parse": { "version": "1.1.0", diff --git a/package.json b/package.json index bda40c2..64d08ca 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "The REST API service component of the xBrowserSync application.", "version": "1.1.11", "author": "xBrowserSync", - "license": "MIT", + "license": "GPL-3.0-only", "main": "dist/api.js", "repository": { "type": "git", @@ -27,13 +27,13 @@ "marked": "^0.8.0", "mkdirp": "^0.5.1", "moment": "^2.24.0", - "mongodb": "^3.4.1", - "mongoose": "^5.8.4", + "mongodb": "^3.5.1", + "mongoose": "^5.8.9", "mongoose-uuid2": "^2.3.0", "saslprep": "^1.0.3", - "smooth-scroll": "^16.1.0", + "smooth-scroll": "^16.1.1", "typeface-roboto-condensed": "0.0.75", - "uuid": "^3.3.3", + "uuid": "^3.4.0", "whatwg-fetch": "^3.0.0" }, "devDependencies": { @@ -46,7 +46,7 @@ "@types/helmet": "0.0.45", "@types/mocha": "^5.2.7", "@types/mongodb": "^3.3.14", - "@types/mongoose": "^5.5.38", + "@types/mongoose": "^5.5.41", "@types/node": "^11.15.4", "@types/sinon": "^7.5.1", "@types/uuid": "^3.4.6", @@ -54,24 +54,24 @@ "chai-http": "^4.3.0", "copy-webpack-plugin": "^5.1.1", "cross-env": "^6.0.3", - "css-loader": "^3.4.1", + "css-loader": "^3.4.2", "file-loader": "^5.0.2", "html-loader": "^0.5.5", "html-webpack-plugin": "^3.2.0", "mini-css-extract-plugin": "^0.9.0", - "mocha": "^6.2.2", - "node-sass": "^4.13.0", + "mocha": "^7.0.0", + "node-sass": "^4.13.1", "optimize-css-assets-webpack-plugin": "^5.0.3", "postcss-loader": "^3.0.0", "prettier": "^1.19.1", - "sass-loader": "^8.0.0", - "sinon": "^8.0.2", - "terser-webpack-plugin": "^2.3.1", + "sass-loader": "^8.0.2", + "sinon": "^8.1.0", + "terser-webpack-plugin": "^2.3.2", "ts-loader": "^6.2.1", - "ts-node": "^8.5.4", + "ts-node": "^8.6.2", "tslint": "^5.20.1", "tslint-config-prettier": "^1.18.0", - "typescript": "^3.7.4", + "typescript": "^3.7.5", "typescript-tslint-plugin": "^0.5.5", "webpack": "^4.41.5", "webpack-cli": "^3.3.10", diff --git a/src/core/server.ts b/src/core/server.ts index 9ece76a..812c8c9 100644 --- a/src/core/server.ts +++ b/src/core/server.ts @@ -128,7 +128,9 @@ export default class Server { }); this.server.on('listening', conn => { - this.log(LogLevel.Info, `Service started on ${Config.get().server.host}:${Config.get().server.port}`); + const protocol = Config.get().server.https.enabled ? 'https' : 'http'; + const url = `${protocol}://${Config.get().server.host}:${Config.get().server.port}${Config.get().server.relativePath}`; + this.log(LogLevel.Info, `Service started at ${url}`); resolve(); }); }); @@ -329,7 +331,7 @@ export default class Server { // Configures api routing private prepareRoutes(): void { const router = express.Router(); - this.app.use('/', router); + this.app.use(Config.get().server.relativePath, router); // Configure docs routing const docsRouter = new DocsRouter(this.app); diff --git a/src/routers/bookmarks.router.ts b/src/routers/bookmarks.router.ts index 6ddbeda..4488d42 100644 --- a/src/routers/bookmarks.router.ts +++ b/src/routers/bookmarks.router.ts @@ -1,5 +1,6 @@ import { autobind } from 'core-decorators'; import { NextFunction, Request, Response } from 'express'; +import Config from '../core/config'; import DB from '../core/db'; import { RequiredDataNotFoundException } from '../core/exception'; import { ApiVerb } from '../core/server'; @@ -10,7 +11,7 @@ import BookmarksService from '../services/bookmarks.service'; export default class BookmarksRouter extends BaseRouter<BookmarksService> implements IApiRouter { // Initialises the routes for this router implementation public initRoutes(): void { - this.app.use('/bookmarks', this.router); + this.app.use(`${Config.get().server.relativePath}bookmarks`, this.router); this.createRoute(ApiVerb.post, '/', { '~1.0.0': this.createBookmarks_v1, // tslint:disable-next-line:object-literal-sort-keys diff --git a/src/routers/docs.router.ts b/src/routers/docs.router.ts index 949e5e8..c0450f7 100644 --- a/src/routers/docs.router.ts +++ b/src/routers/docs.router.ts @@ -1,11 +1,12 @@ import * as express from 'express'; import * as path from 'path'; +import Config from '../core/config'; import BaseRouter, { IApiRouter } from '../routers/base.router'; // Implementation of routes for API documentation export default class DocsRouter extends BaseRouter<void> implements IApiRouter { // Initialises the routes for this router implementation public initRoutes(): void { - this.app.use('/', express.static(path.join(__dirname, '../docs'))); + this.app.use(Config.get().server.relativePath, express.static(path.join(__dirname, '../docs'))); } } \ No newline at end of file diff --git a/src/routers/info.router.ts b/src/routers/info.router.ts index 983df9a..24f2542 100644 --- a/src/routers/info.router.ts +++ b/src/routers/info.router.ts @@ -1,5 +1,6 @@ import { autobind } from 'core-decorators'; import { NextFunction, Request, Response } from 'express'; +import Config from '../core/config'; import { ApiVerb } from '../core/server'; import BaseRouter, { IApiRouter } from '../routers/base.router'; import InfoService from '../services/info.service'; @@ -8,7 +9,7 @@ import InfoService from '../services/info.service'; export default class InfoRouter extends BaseRouter<InfoService> implements IApiRouter { // Initialises the routes for this router implementation public initRoutes(): void { - this.app.use('/info', this.router); + this.app.use(`${Config.get().server.relativePath}info`, this.router); this.createRoute(ApiVerb.get, '/', { '^1.0.0': this.getInfo }); } diff --git a/test/integration/bookmarks.test.ts b/test/integration/bookmarks.test.ts index 86e7d99..a9abd1b 100644 --- a/test/integration/bookmarks.test.ts +++ b/test/integration/bookmarks.test.ts @@ -51,7 +51,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .post('/bookmarks') + .post(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .send(data) .end((err, res) => { @@ -70,7 +70,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .post('/bookmarks') + .post(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .send(data) .end((err, res) => { @@ -81,7 +81,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .post('/bookmarks') + .post(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .send(data) .end((err, res) => { @@ -104,7 +104,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .post('/bookmarks') + .post(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .send(data) .end((err, res) => { @@ -120,7 +120,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .post('/bookmarks') + .post(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .send({ version: syncVersionTestVal }) .end((err, res) => { @@ -145,7 +145,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .put(`/bookmarks/${syncIdTestVal}`) + .put(`${Config.get().server.relativePath}bookmarks/${syncIdTestVal}`) .set('content-type', 'application/json') .send({ bookmarks: bookmarksDataTestVal }) .end((err, res) => { @@ -160,7 +160,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .put(`/bookmarks/invalidid`) + .put(`${Config.get().server.relativePath}bookmarks/invalidid`) .set('content-type', 'application/json') .end((err, res) => { expect(res).to.have.status(401); @@ -174,7 +174,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .put(`/bookmarks/${syncIdTestVal}`) + .put(`${Config.get().server.relativePath}bookmarks/${syncIdTestVal}`) .set('content-type', 'application/json') .end((err, res) => { expect(res).to.have.status(400); @@ -189,7 +189,7 @@ describe('BookmarksRouter', () => { // Create a new sync const id = await new Promise((resolve) => { request(server.Application) - .post(`/bookmarks`) + .post(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .send({ version: syncVersionTestVal }) .end((err, res) => { @@ -200,7 +200,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .put(`/bookmarks/${id}`) + .put(`${Config.get().server.relativePath}bookmarks/${id}`) .set('content-type', 'application/json') .send({ bookmarks: bookmarksDataTestVal }) .end((err, res) => { @@ -219,7 +219,7 @@ describe('BookmarksRouter', () => { // Create a new sync const id = await new Promise((resolve) => { request(server.Application) - .post(`/bookmarks`) + .post(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .send({ version: syncVersionTestVal }) .end((err, res) => { @@ -229,7 +229,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .put(`/bookmarks/${id}`) + .put(`${Config.get().server.relativePath}bookmarks/${id}`) .set('content-type', 'application/json') .send({ bookmarks: bookmarksDataTestVal }) .end((err, res) => { @@ -239,7 +239,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .put(`/bookmarks/${id}`) + .put(`${Config.get().server.relativePath}bookmarks/${id}`) .set('content-type', 'application/json') .send({ bookmarks: bookmarksDataTestVal, @@ -257,7 +257,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .get(`/bookmarks/invalidid`) + .get(`${Config.get().server.relativePath}bookmarks/invalidid`) .end((err, res) => { expect(res).to.have.status(401); resolve(); @@ -272,7 +272,7 @@ describe('BookmarksRouter', () => { // Create a new sync const id = await new Promise((resolve) => { request(server.Application) - .post(`/bookmarks`) + .post(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .send({ version: syncVersionTestVal }) .end((err, res) => { @@ -284,7 +284,7 @@ describe('BookmarksRouter', () => { // Create update the synced bookmarks await new Promise((resolve) => { request(server.Application) - .put(`/bookmarks/${id}`) + .put(`${Config.get().server.relativePath}bookmarks/${id}`) .set('content-type', 'application/json') .send({ bookmarks: bookmarksDataTestVal }) .end((err, res) => { @@ -295,7 +295,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .get(`/bookmarks/${id}`) + .get(`${Config.get().server.relativePath}bookmarks/${id}`) .end((err, res) => { expect(res).to.have.status(200); expect(res).to.be.json; @@ -313,7 +313,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .get(`/bookmarks/invalidid/lastUpdated`) + .get(`${Config.get().server.relativePath}bookmarks/invalidid/lastUpdated`) .end((err, res) => { expect(res).to.have.status(401); resolve(); @@ -328,7 +328,7 @@ describe('BookmarksRouter', () => { // Create a new sync const id = await new Promise((resolve) => { request(server.Application) - .post(`/bookmarks`) + .post(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .send({ version: syncVersionTestVal }) .end((err, res) => { @@ -339,7 +339,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .get(`/bookmarks/${id}/lastUpdated`) + .get(`${Config.get().server.relativePath}bookmarks/${id}/lastUpdated`) .end((err, res) => { expect(res).to.have.status(200); expect(res).to.be.json; @@ -355,7 +355,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .get(`/bookmarks/invalidid/version`) + .get(`${Config.get().server.relativePath}bookmarks/invalidid/version`) .end((err, res) => { expect(res).to.have.status(401); resolve(); @@ -370,7 +370,7 @@ describe('BookmarksRouter', () => { // Create a new sync const id = await new Promise((resolve) => { request(server.Application) - .post(`/bookmarks`) + .post(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .send({ version: syncVersionTestVal }) .end((err, res) => { @@ -381,7 +381,7 @@ describe('BookmarksRouter', () => { await new Promise((resolve) => { request(server.Application) - .get(`/bookmarks/${id}/version`) + .get(`${Config.get().server.relativePath}bookmarks/${id}/version`) .end((err, res) => { expect(res).to.have.status(200); expect(res).to.be.json; diff --git a/test/integration/docs.test.ts b/test/integration/docs.test.ts index 3712685..02aa412 100644 --- a/test/integration/docs.test.ts +++ b/test/integration/docs.test.ts @@ -39,7 +39,7 @@ describe('Docs', () => { await new Promise((resolve) => { request(server.Application) - .get('/') + .get(Config.get().server.relativePath) .set('content-type', 'application/json') .end((err, res) => { expect(res).to.have.status(200); diff --git a/test/integration/info.test.ts b/test/integration/info.test.ts index 9b8023a..15f6e6b 100644 --- a/test/integration/info.test.ts +++ b/test/integration/info.test.ts @@ -39,7 +39,7 @@ describe('InfoRouter', () => { await new Promise((resolve) => { request(server.Application) - .get('/info') + .get(`${Config.get().server.relativePath}info`) .end((err, res) => { expect(res).to.have.status(200); expect(res).to.be.json; diff --git a/test/integration/server.test.ts b/test/integration/server.test.ts index eb3f1da..c62468d 100644 --- a/test/integration/server.test.ts +++ b/test/integration/server.test.ts @@ -6,6 +6,7 @@ import 'mocha'; import * as sinon from 'sinon'; import Config from '../../src/core/config'; import Server from '../../src/core/server'; +import InfoService from '../../src/services/info.service'; before(() => { use(chaiHttp); @@ -41,11 +42,12 @@ describe('Server', () => { }); it('Should return an 500 status code when generic error occurs', async () => { - sandbox.stub(Config, 'get').throwsException(); + sandbox.stub(Config, 'get').returns(testConfig); + sandbox.stub(InfoService.prototype, 'getInfo').throwsException(); await new Promise((resolve) => { request(server.Application) - .get('/info') + .get(`${Config.get().server.relativePath}info`) .set('content-type', 'application/json') .set('accept-version', '0.0.0') .end((err, res) => { @@ -60,7 +62,7 @@ describe('Server', () => { await new Promise((resolve) => { request(server.Application) - .get('/bookmarks') + .get(`${Config.get().server.relativePath}bookmarks`) .set('content-type', 'application/json') .end((err, res) => { expect(res).to.have.status(404); @@ -79,7 +81,7 @@ describe('Server', () => { await new Promise((resolve) => { request(server.Application) - .get('/info') + .get(`${Config.get().server.relativePath}info`) .set('content-type', 'application/json') .end((err, res) => { expect(res).to.have.status(500); @@ -98,7 +100,7 @@ describe('Server', () => { await new Promise((resolve) => { request(server.Application) - .get('/info') + .get(`${Config.get().server.relativePath}info`) .set('content-type', 'application/json') .end((err, res) => { resolve(); @@ -107,7 +109,7 @@ describe('Server', () => { await new Promise((resolve) => { request(server.Application) - .get('/info') + .get(`${Config.get().server.relativePath}info`) .set('content-type', 'application/json') .end((err, res) => { expect(res).to.have.status(429); @@ -121,7 +123,7 @@ describe('Server', () => { await new Promise((resolve) => { request(server.Application) - .get('/info') + .get(`${Config.get().server.relativePath}info`) .set('content-type', 'application/json') .set('accept-version', '0.0.0') .end((err, res) => {