diff --git a/.eslintrc.json b/.eslintrc.json index 639ad0e..4f4452d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,7 +3,7 @@ "browser": true }, "parser": "babel-eslint", - "extends": "eslint:recommended", + "extends": ["eslint:recommended", "eslint-config-synacor"], "rules": { "accessor-pairs": "error", @@ -26,7 +26,13 @@ "eol-last": "off", "eqeqeq": "error", "func-names": "off", - "func-style": ["error", "declaration", { "allowArrowFunctions": true }], + "func-style": [ + "error", + "declaration", + { + "allowArrowFunctions": true + } + ], "generator-star-spacing": "error", "global-require": "off", "guard-for-in": "error", @@ -71,7 +77,7 @@ "no-implied-eval": "error", "no-inline-comments": "off", "no-inner-declarations": ["error", "functions"], - "no-invalid-this": "error", + "no-invalid-this": "off", "no-iterator": "error", "no-label-var": "error", "no-labels": "error", @@ -165,7 +171,7 @@ "before": false } ], - "sort-imports": "error", + "sort-imports": "off", "sort-vars": "off", "strict": ["error", "never"], "template-curly-spacing": "error", @@ -174,7 +180,15 @@ "vars-on-top": "off", "wrap-regex": "error", "yield-star-spacing": "error", - "yoda": ["error", "never"] + "yoda": ["error", "never"], + "brace-style": "off", + "lines-around-comment": "off", + "arrow-body-style": "off", + "indent": "off", + "react/sort-comp": "off", + "react/jsx-no-bind": "off", + "no-extra-semi": "off", + "compat/compat": "off" }, "globals": { "ArrayBuffer": true, diff --git a/.gitignore b/.gitignore index a7636f8..a53c3c1 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ ### Misc ### node_modules/ *.map -.sass-cache \ No newline at end of file +.sass-cache +extension/ \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index d7205f6..5b70347 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,3 @@ src/lib/ -app/ \ No newline at end of file +app/ +build/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 605b50c..997cb74 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,11 @@ language: node_js node_js: - - '8.1.2' + - '10.1.0' install: - npm install -g eslint - npm install -g babel-eslint + - npm install -g eslint-plugin-react + - npm install -g eslint-plugin-mocha + - npm install -g eslint-config-synacor script: - npm run lint diff --git a/app/Inconsolata.ttf b/app/Inconsolata.ttf old mode 100755 new mode 100644 diff --git a/app/icons/icon-128x128.png b/app/icons/icon-128x128.png new file mode 100755 index 0000000..37e4537 Binary files /dev/null and b/app/icons/icon-128x128.png differ diff --git a/app/icons/icon-144x144.png b/app/icons/icon-144x144.png new file mode 100755 index 0000000..baa13f3 Binary files /dev/null and b/app/icons/icon-144x144.png differ diff --git a/app/icons/icon-152x152.png b/app/icons/icon-152x152.png new file mode 100755 index 0000000..a63ece1 Binary files /dev/null and b/app/icons/icon-152x152.png differ diff --git a/app/icons/icon-192x192.png b/app/icons/icon-192x192.png new file mode 100755 index 0000000..a4606e3 Binary files /dev/null and b/app/icons/icon-192x192.png differ diff --git a/app/icons/icon-384x384.png b/app/icons/icon-384x384.png new file mode 100755 index 0000000..159fcf7 Binary files /dev/null and b/app/icons/icon-384x384.png differ diff --git a/app/icons/icon-512x512.png b/app/icons/icon-512x512.png new file mode 100755 index 0000000..9af876b Binary files /dev/null and b/app/icons/icon-512x512.png differ diff --git a/app/icons/icon-72x72.png b/app/icons/icon-72x72.png new file mode 100755 index 0000000..48aa903 Binary files /dev/null and b/app/icons/icon-72x72.png differ diff --git a/app/icons/icon-96x96.png b/app/icons/icon-96x96.png new file mode 100755 index 0000000..8aa0261 Binary files /dev/null and b/app/icons/icon-96x96.png differ diff --git a/app/index.html b/app/index.html index f50563f..5eb82fc 100644 --- a/app/index.html +++ b/app/index.html @@ -1,690 +1,63 @@ - + + Web Maker - + + + + + - + - + - + - + - - - + + + -
-
- - -
-
-
-
-
- -
- - -
-
-
-
-
- - -
-
-
-
- -
- - -
-
-
-
-
- -
-
-
- Console (0) - -
-
-
- - - - -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
- -
-

My Library

- - -
- - -
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/app/preview.html b/app/preview.html index 8bddf9c..777c33f 100644 --- a/app/preview.html +++ b/app/preview.html @@ -2,8 +2,7 @@ - + - - + diff --git a/app/script.js b/app/script.js index 2a24ac4..ed68bf5 100644 --- a/app/script.js +++ b/app/script.js @@ -1 +1,80 @@ -'serviceWorker'in navigator&&-1===document.cookie.indexOf('wmdebug')&&-1===location.href.indexOf('chrome-extension://')&&-1===location.href.indexOf('localhost')&&-1===location.href.indexOf('192.168')&&window.addEventListener('load',function(){navigator.serviceWorker.register('service-worker.js').then(function(e){e.onupdatefound=function(){var t=e.installing;t.onstatechange=function(){switch(t.state){case'installed':navigator.serviceWorker.controller?console.log('New or updated content is available.'):(console.log('Content is now available offline!'),window.alertsService&&window.alertsService.add('Web Maker is now ready to be used offline.'));break;case'redundant':console.error('The installing service worker became redundant.');}}}}).catch(function(t){console.error('Error during service worker registration:',t)})}),function(){window.DEBUG=-1[...document.querySelectorAll(e)];var e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';Node.prototype.nextUntil=function(e){const t=[...this.parentNode.querySelectorAll(e)],s=t.indexOf(this);return t[s+1]},window.requestIdleCallback=window.requestIdleCallback||function(e){setTimeout(e,10)},Node.prototype.previousUntil=function(e){const t=[...this.parentNode.querySelectorAll(e)],s=t.indexOf(this);return t[s-1]},window.utils={semverCompare:function(e,t){for(var s=e.split('.'),o=t.split('.'),n=0;3>n;n++){var i=+s[n],a=+o[n];if(i>a)return 1;if(a>i)return-1;if(!isNaN(i)&&isNaN(a))return 1;if(isNaN(i)&&!isNaN(a))return-1}return 0},generateRandomId:function(t){for(var s='',o=t||10;o--;)s+=e[~~(Math.random()*e.length)];return s},onButtonClick:function(e,t){e.addEventListener('click',function(s){return t(s),!1})},addInfiniteLoopProtection:function(e,{timeout:t}){var s=1,i=[],o='_wmloopvar',n=`\nif (Date.now() - %d > ${t}) { window.top.previewException(new Error("Infinite loop")); break;}\n`;return esprima.parse(e,{tolerant:!0,range:!0,jsx:!0},function(e){switch(e.type){case'DoWhileStatement':case'ForStatement':case'ForInStatement':case'ForOfStatement':case'WhileStatement':var t=1+e.body.range[0],a=e.body.range[1],l=n.replace('%d',o+s),r='';'BlockStatement'!==e.body.type&&(l='{'+l,r='}',--t),i.push({pos:t,str:l}),i.push({pos:a,str:r}),i.push({pos:e.range[0],str:'var %d = Date.now();\n'.replace('%d',o+s)}),++s;break;default:}}),i.sort(function(e,t){return t.pos-e.pos}).forEach(function(t){e=e.slice(0,t.pos)+t.str+e.slice(t.pos)}),e},getHumanDate:function(e){var t=new Date(e),s=t.getDate()+' '+['January','February','March','April','May','June','July','August','September','October','November','December'][t.getMonth()]+' '+t.getFullYear();return s},log:function(){window.DEBUG&&console.log(...arguments)},once:function(e,t,s){e.addEventListener(t,function(i){return i.target.removeEventListener(t,arguments.callee),s(i)})},downloadFile:function(e,t){function s(){var s=document.createElement('a');s.href=window.URL.createObjectURL(t),s.download=e,s.style.display='none',document.body.appendChild(s),s.click(),s.remove()}window.IS_EXTENSION?chrome.downloads.download({url:window.URL.createObjectURL(t),filename:e,saveAs:!0},()=>{chrome.runtime.lastError&&s()}):s()}},window.chrome=window.chrome||{},window.chrome.i18n={getMessage:()=>{}},window.IS_EXTENSION=!!window.chrome.extension,window.IS_EXTENSION?document.body.classList.add('is-extension'):document.body.classList.add('is-app')}(),(()=>{async function e(){return i?i:(utils.log('Initializing firestore'),i=new Promise((e,t)=>s?e(s):firebase.firestore().enablePersistence().then(function(){s=firebase.firestore(),utils.log('firebase db ready',s),e(s)}).catch(function(e){t(e.code),'failed-precondition'===e.code?(alert('Opening Web Maker web app in multiple tabs isn\'t supported at present and it seems like you already have it opened in another tab. Please use in one tab.'),window.trackEvent('fn','multiTabError')):'unimplemented'===e.code})),i)}const t=1;var s,i,o={get:(e,s)=>{const i={};'string'==typeof e?(i[e]=JSON.parse(window.localStorage.getItem(e)),setTimeout(()=>s(i),t)):(Object.keys(e).forEach((t)=>{const s=window.localStorage.getItem(t);i[t]=s===void 0||null===s?e[t]:JSON.parse(s)}),setTimeout(()=>s(i),t))},set:(e,s)=>{Object.keys(e).forEach((t)=>{window.localStorage.setItem(t,JSON.stringify(e[t]))}),setTimeout(()=>{if(s)return s()},t)}};const n=chrome&&chrome.storage?chrome.storage.local:o,a=chrome&&chrome.storage?chrome.storage.sync:o;window.db={getDb:e,getUser:async function(t){const s=await e();return s.doc(`users/${t}`).get().then((e)=>{if(!e.exists)return s.doc(`users/${t}`).set({},{merge:!0});const i=e.data();return Object.assign(window.user,i),i})},getUserLastSeenVersion:async function(){const e=deferred();return a.get({lastSeenVersion:''},(t)=>{e.resolve(t.lastSeenVersion)}),e.promise},setUserLastSeenVersion:async function(t){if(a.set({lastSeenVersion:t},function(){}),window.user){const s=await e();s.doc(`users/${window.user.uid}`).update({lastSeenVersion:t})}},getSettings:function(e){const t=deferred();return a.get(e,(e)=>{t.resolve(e)}),t.promise},local:n,sync:a}})(),window.logout=function(){firebase.auth().signOut()};function login(e){var t;return'facebook'===e?t=new firebase.auth.FacebookAuthProvider:'twitter'===e?t=new firebase.auth.TwitterAuthProvider:'google'===e?(t=new firebase.auth.GoogleAuthProvider,t.addScope('https://www.googleapis.com/auth/userinfo.profile')):t=new firebase.auth.GithubAuthProvider,firebase.auth().signInWithPopup(t).then(function(){window.trackEvent('fn','loggedIn',e),window.db.local.set({lastAuthProvider:e})}).catch(function(e){utils.log(e),'auth/account-exists-with-different-credential'===e.code&&alert('You have already signed up with the same email using different social login')})}window.login=login,window.trackEvent=function(e,t,s,i){return window.DEBUG?void utils.log('trackevent',e,t,s,i):void(window.ga&&ga('send','event',e,t,s,i))},navigator.onLine&&!window.DEBUG&&setTimeout(function(){(function(e,t,s,i,o,n,a){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,n=t.createElement(s),a=t.getElementsByTagName(s)[0],n.async=1,n.src=i,a.parentNode.insertBefore(n,a)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga'),-1===location.href.indexOf('chrome-extension://')?ga('create','UA-87786708-1'):(ga('create','UA-87786708-1',{cookieDomain:'none'}),ga('set','checkProtocolTask',function(){})),ga('send','pageview')},100),function(){window.deferred=function(){var e={},t=new Promise(function(t,s){e.resolve=t,e.reject=s});return e.promise=t,Object.assign(e,t)}}(),function(e){window.loadJS=function(t){var s=deferred(),i=e.document.getElementsByTagName('script')[0],o=e.document.createElement('script');return o.src=t,o.async=!0,i.parentNode.insertBefore(o,i),o.onload=function(){s.resolve()},s.promise}}(window),function(){const e=$('#js-alerts-container');var t;window.alertsService={add:function(s){e.textContent=s,e.classList.add('is-active'),clearTimeout(t),t=setTimeout(function(){e.classList.remove('is-active')},2e3)}}}(),window.jsLibs=[{url:'https://code.jquery.com/jquery-3.2.1.min.js',label:'jQuery',type:'js'},{url:'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js',label:'Bootstrap 3',type:'js'},{url:'https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js',label:'Bootstrap 4',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/foundation/6.4.3/js/foundation.min.js',label:'Foundation',type:'js'},{url:'https://semantic-ui.com/dist/semantic.min.js',label:'Semantic UI',type:'js'},{url:'https://ajax.googleapis.com/ajax/libs/angularjs/1.6.5/angular.min.js',label:'Angular',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/react/16.2.0/umd/react.production.min.js',label:'React',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.2.0/umd/react-dom.production.min.js',label:'React DOM',type:'js'},{url:'https://unpkg.com/vue/dist/vue.min.js',label:'Vue.js',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/three.js/89/three.min.js',label:'Three.js',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/d3/4.13.0/d3.min.js',label:'D3',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js',label:'Underscore',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.3/TweenMax.min.js',label:'Greensock TweenMax',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/js/uikit.min.js',label:'UIkit 2',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.42/js/uikit.min.js',label:'UIkit 3',type:'js'}],window.cssLibs=[{url:'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css',label:'Bootstrap 3',type:'css'},{url:'https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css',label:'Bootstrap 4',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/foundation/6.4.3/css/foundation.min.css',label:'Foundation',type:'css'},{url:'https://semantic-ui.com/dist/semantic.min.css',label:'Semantic UI',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css',label:'Bulma',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/hint.css/2.5.0/hint.min.css',label:'Hint.css',type:'css'},{url:'https://cdn.jsdelivr.net/npm/tailwindcss/dist/tailwind.min.css',label:'Tailwind.css',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/uikit.min.css',label:'UIkit 2',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.42/css/uikit.min.css',label:'UIkit 3',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css',label:'Animate.css',type:'css'},{url:'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',label:'FontAwesome 4',type:'css'},{url:'https://use.fontawesome.com/releases/v5.0.10/css/all.css',label:'FontAwesome 5',type:'css'}],function(){class e{constructor(e,t){this.t=e,this.filter=t.filter,this.selectedCallback=t.selectedCallback;var s=document.createElement('div');s.classList.add('btn-group'),e.parentElement.insertBefore(s,e),s.insertBefore(e,null),this.list=document.createElement('ul'),this.list.classList.add('dropdown__menu'),this.list.classList.add('autocomplete-dropdown'),s.insertBefore(this.list,null),this.loader=document.createElement('div'),this.loader.classList.add('loader'),this.loader.classList.add('autocomplete__loader'),this.loader.style.display='none',s.insertBefore(this.loader,null),setTimeout(()=>{requestIdleCallback(()=>{document.body.appendChild(this.list),this.list.style.position='fixed'})},100),this.t.addEventListener('input',(t)=>this.onInput(t)),this.t.addEventListener('keydown',(t)=>this.onKeyDown(t)),this.t.addEventListener('blur',(t)=>this.closeSuggestions(t)),this.list.addEventListener('mousedown',(t)=>this.onListMouseDown(t))}get currentLineNumber(){return this.t.value.substr(0,this.t.selectionStart).split('\n').length}get currentLine(){var e=this.currentLineNumber;return this.t.value.split('\n')[e-1]}closeSuggestions(){this.list.classList.remove('is-open'),this.isShowingSuggestions=!1}getList(e){return fetch('https://api.cdnjs.com/libraries?search='+e).then((e)=>e.json().then((e)=>e.results))}replaceCurrentLine(e){var t=this.t.value.split('\n');t.splice(this.currentLineNumber-1,1,e),this.t.value=t.join('\n')}onInput(){var e=this.currentLine;if(e){if(-1!==e.indexOf('/')||e.match(/https*:\/\//))return;clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.loader.style.display='block',this.getList(e).then((e)=>{if(this.loader.style.display='none',!e.length)return void this.closeSuggestions();this.list.innerHTML='',this.filter&&(e=e.filter(this.filter));for(var t=0;t${e[t].name}`;this.isShowingSuggestions=!0,this.textareaBounds||(this.textareaBounds=this.t.getBoundingClientRect(),this.list.style.top=this.textareaBounds.bottom+'px',this.list.style.left=this.textareaBounds.left+'px',this.list.style.width=this.textareaBounds.width+'px'),this.list.classList.add('is-open')})},500)}}onKeyDown(e){var t;this.isShowingSuggestions&&(27===e.keyCode&&(this.closeSuggestions(),e.stopPropagation()),40===e.keyCode&&this.isShowingSuggestions?(t=this.list.querySelector('.selected'),t?(t.classList.remove('selected'),t.nextElementSibling.classList.add('selected')):this.list.querySelector('li:first-child').classList.add('selected'),this.list.querySelector('.selected').scrollIntoView(!1),e.preventDefault()):38===e.keyCode&&this.isShowingSuggestions?(t=this.list.querySelector('.selected'),t?(t.classList.remove('selected'),t.previousElementSibling.classList.add('selected')):this.list.querySelector('li:first-child').classList.add('selected'),this.list.querySelector('.selected').scrollIntoView(!1),e.preventDefault()):13===e.keyCode&&this.isShowingSuggestions&&(t=this.list.querySelector('.selected'),this.selectSuggestion(t.dataset.url),this.closeSuggestions()))}onListMouseDown(e){var t=e.target;t.parentElement.dataset.url&&this.selectSuggestion(t.parentElement.dataset.url)}selectSuggestion(e){this.selectedCallback?this.selectedCallback.call(null,e):this.replaceCurrentLine(e),this.closeSuggestions()}}window.TextareaAutoComplete=e}(),(()=>{window.itemService={async getItem(e){var t=await window.db.getDb();return t.doc(`items/${e}`).get().then((e)=>e.data())},async getUserItemIds(){if(window.user)return new Promise((e)=>{e(window.user.items||{})});var e=await window.db.getDb();return e.doc(`users/${window.user.uid}`).get().then((e)=>e.exists?e.data().items:{})},async getAllItems(){var e=Date.now(),t=deferred();let s=await this.getUserItemIds();s=Object.getOwnPropertyNames(s||{}),utils.log('itemids',s),s.length||t.resolve([]);var i=await window.db.getDb();const o=[];return i.collection('items').where('createdBy','==',window.user.uid).onSnapshot(function(s){s.forEach(function(e){o.push(e.data())}),utils.log('Items fetched in ',Date.now()-e,'ms'),t.resolve(o)},function(){t.resolve([])}),t.promise},async setUser(){const e=await window.db.getDb();return e.doc(`users/${window.user.uid}`).set({items:{}})},async setItem(e,t){const s=deferred();var i;if(db.local.set({[e]:t},()=>{!window.IS_EXTENSION&&window.user&&navigator.onLine||s.resolve()}),'code'===e)return!1;if(window.user){var o=await window.db.getDb();utils.log(`Starting to save item ${e}`),t.createdBy=window.user.uid,i=o.collection('items').doc(e).set(t,{merge:!0}).then((e)=>{utils.log('Document written',e),s.resolve()}).catch(s.reject)}return window.user&&navigator.onLine?i:s.promise},saveItems(e){var t=deferred();return window.user?window.db.getDb().then((s)=>{const i=s.batch();for(var o in e)e[o].createdBy=window.user.uid,i.set(s.doc(`items/${o}`),e[o]),i.update(s.doc(`users/${window.user.uid}`),{[`items.${o}`]:!0}),window.user.items=window.user.items||{},window.user.items[o]=!0;i.commit().then(t.resolve)}):(window.db.local.set(e,t.resolve),window.db.local.get({items:{}},function(t){for(var s in e)t.items[s]=!0;window.db.local.set({items:t.items})})),t.promise},async removeItem(e){if(!window.user){var t=deferred();return db.local.remove(e,t.resolve),t.promise}const s=await window.db.getDb();return utils.log(`Starting to save item ${e}`),s.collection('items').doc(e).delete().then((e)=>{utils.log('Document removed',e)}).catch((e)=>utils.log(e))},async setItemForUser(e){if(!window.user)return window.db.local.get({items:{}},function(t){t.items[e]=!0,window.db.local.set({items:t.items})});const t=await window.db.getDb();return t.collection('users').doc(window.user.uid).update({[`items.${e}`]:!0}).then((t)=>{utils.log(`Item ${e} set for user`,t),window.user.items=window.user.items||{},window.user.items[e]=!0}).catch((e)=>utils.log(e))},async unsetItemForUser(e){if(!window.user)return window.db.local.get({items:{}},function(t){delete t.items[e],db.local.set({items:t.items})});const t=await window.db.getDb();return t.collection('users').doc(window.user.uid).update({[`items.${e}`]:firebase.firestore.FieldValue.delete()}).then((t)=>{delete window.user.items[e],utils.log(`Item ${e} unset for user`,t)}).catch((e)=>utils.log(e))}}})(),function(e,t){function s(){clearTimeout(s.timeout),s.timeout=setTimeout(function(){const e=2===ne||5===ne?'width':'height';[Ee,xe,Me].forEach(function(t){const s=t.getBoundingClientRect(),i=s[e];100>i?t.classList.add('is-minimized'):t.classList.remove('is-minimized'),-1===t.style[e].indexOf(`100% - ${2*ye}px`)?t.classList.remove('is-maximized'):t.classList.add('is-maximized')})},50)}function i(e){if(e.classList.contains('is-minimized')||e.classList.contains('is-maximized'))e.classList.remove('is-minimized'),e.classList.remove('is-maximized'),me.setSizes([33.3,33.3,33.3]);else{const s=parseInt(e.dataset.codeWrapId,10);var t=[`${ye}px`,`${ye}px`,`${ye}px`];t[s]=`calc(100% - ${2*ye}px)`,me.setSizes(t),e.classList.add('is-maximized')}}function o(){var e;return e=le&&le.mainSizes?3===ne?[le.mainSizes[1],le.mainSizes[0]]:le.mainSizes:5===ne?[75,25]:[50,50],e}function n(){me&&me.destroy(),ce&&ce.destroy();var e={direction:2===ne||5===ne?'horizontal':'vertical',minSize:ye,gutterSize:6,onDragStart:function(){document.body.classList.add('is-dragging')},onDragEnd:function(){s(),document.body.classList.remove('is-dragging')}};e.sizes=le&&le.sizes?le.sizes:[33.33,33.33,33.33],me=Split(['#js-html-code','#js-css-code','#js-js-code'],e),ce=Split(['#js-code-side','#js-demo-side'],{direction:2===ne?'vertical':'horizontal',minSize:150,gutterSize:6,sizes:o(),onDragEnd:function(){Ce.refreshOnResize&&setTimeout(function(){H.setPreviewContent(!0)},1)}})}function a(e){return e=500>window.innerWidth?2:e,ne===e?(ce.setSizes(o()),me.setSizes(le.sizes||[33.33,33.33,33.33]),void(ne=e)):void(ne=e,[1,2,3,4,5].forEach((e)=>{window[`layoutBtn${e}`].classList.remove('selected'),document.body.classList.remove(`layout-${e}`)}),$('#layoutBtn'+e).classList.add('selected'),document.body.classList.add('layout-'+e),n(),H.setPreviewContent(!0))}function l(){utils.log('onExternalLibChange'),r(),H.setPreviewContent(!0),e.add('Libraries updated.')}function r(){var e=0;e+=Be.value.split('\n').filter((e)=>!!e).length,e+=Fe.value.split('\n').filter((e)=>!!e).length,e?($('#js-external-lib-count').textContent=e,$('#js-external-lib-count').style.display='inline'):$('#js-external-lib-count').style.display='none'}function d(e,t){const s=deferred();return db.local.set({[e]:t},s.resolve),s.promise}function c(){if(!window.user&&!window.localStorage[se.LOGIN_AND_SAVE_MESSAGE_SEEN]){const e=confirm('Saving without signing in will save your work only on this machine and this browser. If you want it to be secure & available anywhere, please login in your account and then save.\n\nDo you still want to continue saving locally?');if(window.localStorage[se.LOGIN_AND_SAVE_MESSAGE_SEEN]=!0,!e)return trackEvent('ui',se.LOGIN_AND_SAVE_MESSAGE_SEEN,'login'),j(),void loginModal.classList.add('is-modal-visible');trackEvent('ui',se.LOGIN_AND_SAVE_MESSAGE_SEEN,'local')}var s=!le.id;le.id=le.id||'item-'+utils.generateRandomId(),saveBtn.classList.add('is-loading'),g().then(()=>{saveBtn.classList.remove('is-loading'),!pe&&Ce.autoSave&&(pe=!0,e.add('Auto-save enabled.'))}),s&&t.setItemForUser(le.id)}function m(){pe&&re&&c()}function u(){var e,t=2===ne||5===ne?'width':'height';try{e=[Ee.style[t],xe.style[t],Me.style[t]]}catch(t){e=[33.33,33.33,33.33]}finally{return e}}function p(){var e,t=2===ne?'height':'width';try{e=[+$('#js-code-side').style[t].match(/([\d.]+)%/)[1],+$('#js-demo-side').style[t].match(/([\d.]+)%/)[1]]}catch(t){e=[50,50]}finally{return e}}function g(s){return le.title=Pe.value,le.html=H.cm.html.getValue(),le.css=H.cm.css.getValue(),le.js=H.cm.js.getValue(),le.htmlMode=be,le.cssMode=Se,le.jsMode=fe,ee[Se].hasSettings&&(le.cssSettings={acssConfig:H.acssSettingsCm.getValue()}),le.updatedOn=Date.now(),le.layoutMode=ne,le.externalLibs={js:Be.value,css:Fe.value},le.sizes=u(),le.mainSizes=p(),utils.log('saving key',s||le.id,le),t.setItem(s||le.id,le).then(function(){window.user&&!navigator.onLine?e.add('Item saved locally. Will save to account when you are online.'):e.add('Item saved.'),re=0,saveBtn.classList.remove('is-marked')})}function h(e){var t='';e.length?(e.sort(function(e,t){return t.updatedOn-e.updatedOn}),e.forEach(function(e){t+='

'+e.title+'

Last updated: '+utils.getHumanDate(e.updatedOn)+'
'}),savedItemCountEl.textContent='('+e.length+')',savedItemCountEl.style.display='inline'):(t+='

Nothing saved here.

',savedItemCountEl.style.display='none'),Ie.querySelector('#js-saved-items-wrap').innerHTML=t,v()}function v(e){!1===e?Ie.classList.remove('is-open'):Ie.classList.toggle('is-open'),ke=Ie.classList.contains('is-open'),ke?searchInput.focus():(searchInput.value='',ue&&ue.focus()),document.body.classList[ke?'add':'remove']('overlay-visible')}async function b(e,s){var o=deferred();de={};var n=[];return window.user&&!s?(n=await t.getAllItems(),utils.log('got items'),e&&n.forEach((e)=>{de[e.id]=e}),o.resolve(n),o.promise):(db.local.get('items',function(t){var s=Object.getOwnPropertyNames(t.items||{});s.length||o.resolve([]),trackEvent('fn','fetchItems',s.length);for(let a=0;a{e.add('Item removed.'),le.id===s&&C()}),delete de[s],trackEvent('fn','itemRemoved'))}function w(){Pe.value=le.title||'Untitled',Be.value=le.externalLibs&&le.externalLibs.js||'',Fe.value=le.externalLibs&&le.externalLibs.css||'',utils.log('refresh editor'),be=le.htmlMode||Ce.htmlMode||X.HTML,Se=le.cssMode||Ce.cssMode||Z.CSS,fe=le.jsMode||Ce.jsMode||Q.JS,H.cm.html.setValue(le.html),H.cm.css.setValue(le.css),H.cm.js.setValue(le.js),H.cm.html.refresh(),H.cm.css.refresh(),H.cm.js.refresh(),H.acssSettingsCm.setValue(le.cssSettings?le.cssSettings.acssConfig:''),H.acssSettingsCm.refresh(),H.clearConsole(),r(),Promise.all([x(be),M(Se),T(fe)]).then(()=>H.setPreviewContent(!0)),a(le.layoutMode||Ce.layoutMode)}function j(){helpModal.classList.remove('is-modal-visible'),notificationsModal.classList.remove('is-modal-visible'),addLibraryModal.classList.remove('is-modal-visible'),onboardModal.classList.remove('is-modal-visible'),settingsModal.classList.remove('is-modal-visible'),cssSettingsModal.classList.remove('is-modal-visible'),keyboardShortcutsModal.classList.remove('is-modal-visible'),loginModal.classList.remove('is-modal-visible'),profileModal.classList.remove('is-modal-visible'),pledgeModal.classList.remove('is-modal-visible'),askToImportModal.classList.remove('is-modal-visible'),v(!1),document.dispatchEvent(new Event('overlaysClosed'))}function E(e){function t(){ee[e].hasLoaded=!0,i.resolve()}const s='lib/transpilers';var i=deferred();return ee[e].hasLoaded?(i.resolve(),i.promise):(e===X.JADE?loadJS(`${s}/jade.js`).then(t):e===X.MARKDOWN?loadJS(`${s}/marked.js`).then(t):e===Z.LESS?loadJS(`${s}/less.min.js`).then(t):e===Z.SCSS||e===Z.SASS?loadJS(`${s}/sass.js`).then(function(){ae=new Sass(`${s}/sass.worker.js`),t()}):e===Z.STYLUS?loadJS(`${s}/stylus.min.js`).then(t):e===Z.ACSS?loadJS(`${s}/atomizer.browser.js`).then(t):e===Q.COFFEESCRIPT?loadJS(`${s}/coffee-script.js`).then(t):e===Q.ES6?loadJS(`${s}/babel.min.js`).then(t):e===Q.TS?loadJS(`${s}/typescript.js`).then(t):i.resolve(),i.promise)}function x(e){return be=e,Oe.textContent=ee[e].label,Oe.parentElement.querySelector('select').value=e,H.cm.html.setOption('mode',ee[e].cmMode),CodeMirror.autoLoadMode(H.cm.html,ee[e].cmPath||ee[e].cmMode),E(e)}function M(e){return Se=e,De.textContent=ee[e].label,De.parentElement.querySelector('select').value=e,H.cm.css.setOption('mode',ee[e].cmMode),H.cm.css.setOption('readOnly',ee[e].cmDisable),cssSettingsBtn.classList[ee[e].hasSettings?'remove':'add']('hide'),CodeMirror.autoLoadMode(H.cm.css,ee[e].cmPath||ee[e].cmMode),E(e)}function T(e){return fe=e,_e.textContent=ee[e].label,_e.parentElement.querySelector('select').value=e,H.cm.js.setOption('mode',ee[e].cmMode),CodeMirror.autoLoadMode(H.cm.js,ee[e].cmPath||ee[e].cmMode),E(e)}function I(){var e=deferred(),t=H.cm.html.getValue();return be===X.HTML?e.resolve(t):be===X.MARKDOWN?e.resolve(marked?marked(t):t):be===X.JADE&&e.resolve(window.jade?jade.render(t):t),e.promise}function A(){var e=deferred(),t=H.cm.css.getValue();if(D('css'),Se===Z.CSS)e.resolve(t);else if(Se===Z.SCSS||Se===Z.SASS)ae&&t?ae.compile(t,{indentedSyntax:Se===Z.SASS},function(t){t.line&&t.message&&_('css',[{lineNumber:t.line-1,message:t.message}]),e.resolve(t.text)}):e.resolve(t);else if(Se===Z.LESS)less.render(t).then(function(t){e.resolve(t.css)},function(e){_('css',[{lineNumber:e.line,message:e.message}])});else if(Se===Z.STYLUS)stylus(t).render(function(t,s){if(t){window.err=t;var i=t.message.split('\n');i.pop(),_('css',[{lineNumber:+t.message.match(/stylus:(\d+):/)[1]-298,message:i.pop()}])}e.resolve(s)});else if(Se===Z.ACSS)if(!window.atomizer)e.resolve('');else{const t=H.cm.html.getValue(),i=atomizer.findClassNames(t);var s;try{s=atomizer.getConfig(i,JSON.parse(H.acssSettingsCm.getValue()))}catch(t){s=atomizer.getConfig(i,{})}const o=atomizer.getCss(s);H.cm.css.setValue(o),e.resolve(o)}return e.promise}function O(e){var t=deferred(),s=H.cm.js.getValue();if(D('js'),!s)return t.resolve(''),t.promise;if(fe===Q.JS)try{esprima.parse(s,{tolerant:!0})}catch(t){_('js',[{lineNumber:t.lineNumber-1,message:t.description}])}finally{!1!==e&&(s=utils.addInfiniteLoopProtection(s,{timeout:Ce.infiniteLoopTimeout})),t.resolve(s)}else if(fe===Q.COFFEESCRIPT){if(!window.CoffeeScript)return t.resolve(''),t.promise;try{s=CoffeeScript.compile(s,{bare:!0})}catch(t){_('js',[{lineNumber:t.location.first_line,message:t.message}])}finally{!1!==e&&(s=utils.addInfiniteLoopProtection(s,{timeout:Ce.infiniteLoopTimeout})),t.resolve(s)}}else if(fe===Q.ES6){if(!window.Babel)return t.resolve(''),t.promise;try{esprima.parse(s,{tolerant:!0,jsx:!0})}catch(t){_('js',[{lineNumber:t.lineNumber-1,message:t.description}])}finally{s=Babel.transform(s,{presets:['latest','stage-2','react']}).code,!1!==e&&(s=utils.addInfiniteLoopProtection(s,{timeout:Ce.infiniteLoopTimeout})),t.resolve(s)}}else if(fe===Q.TS)try{if(!window.ts)return t.resolve(''),t.promise;if(s=ts.transpileModule(s,{reportDiagnostics:!0,compilerOptions:{noEmitOnError:!0,diagnostics:!0,module:ts.ModuleKind.ES2015}}),s.diagnostics.length)throw{description:s.diagnostics[0].messageText,lineNumber:ts.getLineOfLocalPosition(s.diagnostics[0].file,s.diagnostics[0].start)};!1!==e&&(s=utils.addInfiniteLoopProtection(s.outputText,{timeout:Ce.infiniteLoopTimeout})),t.resolve(s)}catch(t){_('js',[{lineNumber:t.lineNumber-1,message:t.description}])}return t.promise}function D(e){H.cm[e].clearGutter('error-gutter')}function _(e,t){var s=H.cm[e];t.forEach(function(t){s.operation(function(){var e=document.createElement('div');e.setAttribute('data-title',t.message),e.classList.add('gutter-error-marker'),s.setGutterMarker(t.lineNumber,'error-gutter',e)})})}function P(e,t,s,i){var o=Be.value.split('\n').reduce(function(e,t){return e+(t?'\n':'')},''),n=Fe.value.split('\n').reduce(function(e,t){return e+(t?'\n':'')},''),a='\n\n\n\n'+n+'\n\n\n\n'+e+'\n'+o+'\n';if(i||(a+=''),fe===Q.ES6&&(a+=''),'string'==typeof s)a+='\n\n',a}function N(e,t,s){function i(e){return function(){utils.log(arguments),trackEvent('fn','error',e),N.errorCount=(N.errorCount||0)+1,4===N.errorCount&&setTimeout(function(){alert('Oops! Seems like your preview isn\'t updating. It\'s recommended to switch to the web app: https://webmakerapp.com/app/.\n\n If you still want to get the extension working, please try the following steps until it fixes:\n - Refresh Web Maker\n - Restart browser\n - Update browser\n - Reinstall Web Maker (don\'t forget to export all your creations from saved items pane (click the OPEN button) before reinstalling)\n\nIf nothing works, please tweet out to @webmakerApp.'),trackEvent('ui','writeFileMessageSeen')},1e3)}}var o=!1;window.webkitRequestFileSystem(window.TEMPORARY,5242880,function(n){n.root.getFile(e,{create:!0},function(e){e.createWriter((e)=>{e.onwriteend=function(){return o?s():(o=!0,e.seek(0),e.write(t),!1)},e.truncate(0)},i('createWriterFail'))},i('getFileFail'))},i('webkitRequestFileSystemFail'))}function B(e,t,s){const i=!window.webkitRequestFileSystem||!window.IS_EXTENSION;var o=P(e,t,i?s:null),n=new Blob([o],{type:'text/plain;charset=UTF-8'}),a=new Blob([s],{type:'text/plain;charset=UTF-8'});!trackEvent.hasTrackedCode&&(e||t||s)&&(trackEvent('fn','hasCode'),trackEvent.hasTrackedCode=!0),i?H.detachedWindow?(utils.log('\u2709\uFE0F Sending message to detached window'),H.detachedWindow.postMessage({contents:o},'*')):(je.src=je.src,setTimeout(()=>{je.contentDocument.open(),je.contentDocument.write(o),je.contentDocument.close()},10)):N('script.js',a,function(){N('preview.html',n,function(){var e=chrome.i18n.getMessage()?`chrome-extension://${chrome.i18n.getMessage('@@extension_id')}`:`${location.origin}`,t=`filesystem:${e}/temporary/preview.html`;H.detachedWindow?H.detachedWindow.postMessage(t,'*'):je.src=t})})}function F(){var e=I(),t=A(),s=O(!1);Promise.all([e,t,s]).then(function(e){var t=e[0],s=e[1],i=e[2],o=P(t,s,i,!0),n=new Date,a=['web-maker',n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds()].join('-');le.title&&(a=le.title),a+='.html';var l=new Blob([o],{type:'text/html;charset=UTF-8'});utils.downloadFile(a,l),trackEvent('fn','saveFileComplete')})}function z(e,t){var s=CodeMirror(e,{mode:t.mode,lineNumbers:!0,lineWrapping:!0,autofocus:t.autofocus||!1,autoCloseBrackets:!0,autoCloseTags:!0,matchBrackets:!0,matchTags:t.matchTags||!1,tabMode:'indent',keyMap:'sublime',theme:'monokai',lint:!!t.lint,tabSize:2,foldGutter:!0,styleActiveLine:!0,gutters:t.gutters||[],profile:t.profile||'',extraKeys:{Up:function(e){ke||CodeMirror.commands.goLineUp(e)},Down:function(e){ke||CodeMirror.commands.goLineDown(e)},"Shift-Tab":function(e){CodeMirror.commands.indentAuto(e)},Tab:function(e){if(t.emmet){const t=e.execCommand('emmetExpandAbbreviation');if(!0===t)return}const s=$('[data-setting=indentWith]:checked');e.somethingSelected()||s&&'spaces'!==s.value?CodeMirror.commands.defaultTab(e):CodeMirror.commands.insertSoftTab(e)},Enter:'emmetInsertLineBreak'}});return s.on('focus',(e)=>{ue=e}),s.on('change',function(e,t){clearTimeout(ie),ie=setTimeout(function(){'setValue'!==t.origin&&(!1!==Ce.autoPreview&&H.setPreviewContent(),saveBtn.classList.add('is-marked'),re+=1,0==re%he&&re>=he&&(saveBtn.classList.add('animated'),saveBtn.classList.add('wobble'),saveBtn.addEventListener('animationend',()=>{saveBtn.classList.remove('animated'),saveBtn.classList.remove('wobble')})),trackEvent.previewCount=(trackEvent.previewCount||0)+1,4===trackEvent.previewCount&&trackEvent('fn','usingPreview'))},ge)}),s.addKeyMap({"Ctrl-Space":'autocomplete'}),t.noAutocomplete||s.on('inputRead',function(e,t){Ce.autoComplete&&'+input'===t.origin&&';'!==t.text[0]&&','!==t.text[0]&&' '!==t.text[0]&&CodeMirror.commands.autocomplete(s,null,{completeSingle:!1})}),s}function V(){H.toggleModal(settingsModal)}function U(s){var i=[],o={};const n=deferred();s.forEach((e)=>{de[e.id]?i.push(e.id):(utils.log('merging',e.id),o[e.id]=e)});var a=s.length-i.length;if(i.length){var l=confirm(i.length+' creations already exist. Do you want to replace them?');l&&(utils.log('shouldreplace',l),s.forEach((e)=>{o[e.id]=e}),a=s.length)}return a?t.saveItems(o).then(()=>{n.resolve(),e.add(a+' creations imported successfully.'),trackEvent('fn','itemsImported',a)}):n.resolve(),v(!1),n.promise}function R(t){var e=t.target.files[0],s=new FileReader;s.onload=function(e){var t;try{t=JSON.parse(e.target.result),utils.log(t),U(t)}catch(e){utils.log(e),alert('Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.')}},s.readAsText(e,'utf-8')}function W(e){function t(){var e='filesystem:chrome-extension://'+chrome.i18n.getMessage('@@extension_id')+'/temporary/'+d;chrome.downloads.download({url:e},function(){chrome.runtime.lastError&&window.open(e)})}function s(t){utils.log(t)}for(var o=atob(e.split(',')[1]),n=e.split(',')[0].split(':')[1].split(';')[0],a=new ArrayBuffer(o.length),l=new Uint8Array(a),r=0;r{e.root.getFile(d,{create:!0},(e)=>{e.createWriter((e)=>{e.onwriteend=t,e.write(i)},s)},s)},s)}function q(){var e=deferred();return window.IS_EXTENSION?(chrome.permissions.contains({permissions:['downloads']},function(t){t?e.resolve():chrome.permissions.request({permissions:['downloads']},function(t){t?(trackEvent('fn','downloadsPermGiven'),e.resolve()):e.reject()})}),e.promise):(e.resolve(),e.promise)}function K(){$('[data-setting=preserveLastCode]').checked=Ce.preserveLastCode,$('[data-setting=replaceNewTab]').checked=Ce.replaceNewTab,$('[data-setting=htmlMode]').value=Ce.htmlMode,$('[data-setting=cssMode]').value=Ce.cssMode,$('[data-setting=jsMode]').value=Ce.jsMode,$('[data-setting=indentSize]').value=Ce.indentSize,indentationSizeValueEl.textContent=Ce.indentSize,$('[data-setting=indentWith][value='+(Ce.indentWith||'spaces')+']').checked=!0,$('[data-setting=isCodeBlastOn]').checked=Ce.isCodeBlastOn,$('[data-setting=editorTheme]').value=Ce.editorTheme,$('[data-setting=keymap][value='+(Ce.keymap||'sublime')+']').checked=!0,$('[data-setting=fontSize]').value=Ce.fontSize||16,$('[data-setting=refreshOnResize]').checked=Ce.refreshOnResize,$('[data-setting=autoPreview]').checked=Ce.autoPreview,$('[data-setting=editorFont]').value=Ce.editorFont,$('[data-setting=editorCustomFont]').value=Ce.editorCustomFont,$('[data-setting=autoSave]').checked=Ce.autoSave,$('[data-setting=autoComplete]').checked=Ce.autoComplete,$('[data-setting=preserveConsoleLogs]').checked=Ce.preserveConsoleLogs,$('[data-setting=lightVersion]').checked=Ce.lightVersion,$('[data-setting=lineWrap]').checked=Ce.lineWrap,$('[data-setting=infiniteLoopTimeout]').value=Ce.infiniteLoopTimeout}function G(e){function t(t){const e=s(`[d-${t}]`);e.forEach(function(s){s.addEventListener(t,function(i){H[s.getAttribute(`d-${t}`)].call(window,i)})})}e instanceof Node||(e=document);const s=(t)=>[...e.querySelectorAll(t)];t('click'),t('change'),t('input'),t('keyup');const i=s(`[d-open-modal]`);i.forEach(function(e){utils.onButtonClick(e,function(){H.toggleModal(window[e.getAttribute('d-open-modal')]),trackEvent(e.getAttribute('data-event-category'),e.getAttribute('data-event-action'))})});const o=s(`[d-html]`);o.forEach(function(e){fetch(e.getAttribute('d-html')).then((t)=>{e.removeAttribute('d-html'),t.text().then((t)=>{requestIdleCallback(()=>{e.innerHTML=t,G(e)})})})})}var H=H||{},Y='3.2.0';window.DEBUG&&(window.scope=H);const J={preserveLastCode:!0,replaceNewTab:!1,htmlMode:'html',jsMode:'js',cssMode:'css',isCodeBlastOn:!1,indentWith:'spaces',indentSize:2,editorTheme:'monokai',keymap:'sublime',fontSize:16,refreshOnResize:!1,autoPreview:!0,editorFont:'FiraCode',editorCustomFont:'',autoSave:!0,autoComplete:!0,preserveConsoleLogs:!0,lightVersion:!1,lineWrap:!0,infiniteLoopTimeout:1e3};var X={HTML:'html',MARKDOWN:'markdown',JADE:'jade'},Z={CSS:'css',SCSS:'scss',SASS:'sass',LESS:'less',STYLUS:'stylus',ACSS:'acss'},Q={JS:'js',ES6:'es6',COFFEESCRIPT:'coffee',TS:'typescript'},ee={};ee[X.HTML]={label:'HTML',cmMode:'htmlmixed',codepenVal:'none'},ee[X.MARKDOWN]={label:'Markdown',cmMode:'markdown',codepenVal:'markdown'},ee[X.JADE]={label:'Pug',cmMode:'pug',codepenVal:'pug'},ee[Q.JS]={label:'JS',cmMode:'javascript',codepenVal:'none'},ee[Q.COFFEESCRIPT]={label:'CoffeeScript',cmMode:'coffeescript',codepenVal:'coffeescript'},ee[Q.ES6]={label:'ES6 (Babel)',cmMode:'jsx',codepenVal:'babel'},ee[Q.TS]={label:'TypeScript',cmPath:'jsx',cmMode:'text/typescript-jsx',codepenVal:'typescript'},ee[Z.CSS]={label:'CSS',cmPath:'css',cmMode:'css',codepenVal:'none'},ee[Z.SCSS]={label:'SCSS',cmPath:'css',cmMode:'text/x-scss',codepenVal:'scss'},ee[Z.SASS]={label:'SASS',cmMode:'sass',codepenVal:'sass'},ee[Z.LESS]={label:'LESS',cmPath:'css',cmMode:'text/x-less',codepenVal:'less'},ee[Z.STYLUS]={label:'Stylus',cmMode:'stylus',codepenVal:'stylus'},ee[Z.ACSS]={label:'Atomic CSS',cmPath:'css',cmMode:'css',codepenVal:'notsupported',cmDisable:!0,hasSettings:!0};const te=chrome.extension||window.DEBUG?'/':'/app',se={LOGIN_AND_SAVE_MESSAGE_SEEN:'loginAndsaveMessageSeen',ASKED_TO_IMPORT_CREATIONS:'askedToImportCreations'};var ie,oe,ne,ae,le,re,de,ce,me,ue,pe,ge=500,he=15,ve=!0,be=X.HTML,fe=Q.JS,Se=Z.CSS,ye=33,Ce={},Le={html:null,css:null,js:null},ke=!1,we=0,je=$('#demo-frame'),Ee=$('#js-html-code'),xe=$('#js-css-code'),Me=$('#js-js-code'),Te=$('#js-codepen-form'),Ie=$('#js-saved-items-pane'),Ae=$('#js-saved-items-pane-close-btn'),Oe=$('#js-html-mode-label'),De=$('#js-css-mode-label'),_e=$('#js-js-mode-label'),Pe=$('#js-title-input'),Ne=$('#js-add-library-select'),Be=$('#js-external-js'),Fe=$('#js-external-css');H.cm={},H.frame=je,H.demoFrameDocument=je.contentDocument||je.contentWindow.document,window.previewException=function(e){console.error('Possible infinite loop detected.',e.stack),window.onMessageFromConsole('Possible infinite loop detected.',e.stack)},window.onunload=function(){g('code'),H.detachedWindow&&H.detachedWindow.close()},H.setPreviewContent=function(e,t){if(!Ce.autoPreview&&!t)return;Ce.preserveConsoleLogs||H.clearConsole();var s={html:H.cm.html.getValue(),css:H.cm.css.getValue(),js:H.cm.js.getValue()};utils.log('\uD83D\uDD0E setPreviewContent',e);const i=H.detachedWindow?H.detachedWindow.document.querySelector('iframe'):je;if(!e&&s.html===Le.html&&s.js===Le.js)A().then(function(e){i.contentDocument.querySelector('#webmakerstyle')&&(i.contentDocument.querySelector('#webmakerstyle').textContent=e)});else{var o=I(),n=A(),a=O();Promise.all([o,n,a]).then(function(e){B(e[0],e[1],e[2])})}Le.html=s.html,Le.css=s.css,Le.js=s.js},H.cm.html=z(Ee,{mode:'htmlmixed',profile:'xhtml',gutters:['CodeMirror-linenumbers','CodeMirror-foldgutter'],noAutocomplete:!0,matchTags:{bothTags:!0},emmet:!0}),H.cm.css=z(xe,{mode:'css',gutters:['error-gutter','CodeMirror-linenumbers','CodeMirror-foldgutter'],emmet:!0}),Inlet(H.cm.css),H.cm.js=z(Me,{mode:'javascript',gutters:['error-gutter','CodeMirror-linenumbers','CodeMirror-foldgutter']}),Inlet(H.cm.js),H.consoleCm=CodeMirror(consoleLogEl,{mode:'javascript',lineWrapping:!0,theme:'monokai',foldGutter:!0,readOnly:!0,gutters:['CodeMirror-foldgutter']}),H.onModalSettingsLinkClick=function(){V(),trackEvent('ui','onboardSettingsBtnClick')},H.onShowInTabClicked=function(){trackEvent('ui','onboardShowInTabClick')},H.onDontShowInTabClicked=function(){trackEvent('ui','onboardDontShowInTabClick')},H.exportItems=function(t){q().then(()=>{b().then(function(e){var t=new Date,s=['web-maker-export',t.getFullYear(),t.getMonth()+1,t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()].join('-');s+='.json';var i=new Blob([JSON.stringify(e,!1,2)],{type:'application/json;charset=UTF-8'});utils.downloadFile(s,i),trackEvent('ui','exportBtnClicked')})}),t.preventDefault()},H.onImportBtnClicked=function(t){var e=document.createElement('input');e.type='file',e.style.display='none',e.accept='accept="application/json',document.body.appendChild(e),e.addEventListener('change',R),e.click(),trackEvent('ui','importBtnClicked'),t.preventDefault()},H.takeScreenshot=function(t){q().then(()=>{function e(t){var s=document.createElement('canvas'),i=je.getBoundingClientRect();s.width=i.width,s.height=i.height;var o=s.getContext('2d'),n=window.devicePixelRatio||1;o.drawImage(t,i.left*n,i.top*n,i.width*n,i.height*n,0,0,i.width,i.height),t.removeEventListener('load',e),W(s.toDataURL())}var t=document.createElement('style');t.textContent='[class*="hint"]:after, [class*="hint"]:before { display: none!important; }',document.body.appendChild(t),setTimeout(()=>{chrome.tabs.captureVisibleTab(null,{format:'png',quality:100},function(s){if(t.remove(),s){var i=new Image;i.src=s,i.addEventListener('load',()=>e(i,s))}})},50),trackEvent('ui','takeScreenshotBtnClick')}),t.preventDefault()},H.updateSetting=function(t){if(t){var s=t.target.dataset.setting,i={},o=t.target;utils.log(s,'checkbox'===o.type?o.checked:o.value),Ce[s]='checkbox'===o.type?o.checked:o.value,i[s]=Ce[s],db.sync.set(i,function(){e.add('Setting saved')}),window.user&&window.db.getDb().then((e)=>{e.collection('users').doc(window.user.uid).update({[`settings.${s}`]:Ce[s]}).then((e)=>{utils.log(`Setting "${s}" for user`,e)}).catch((e)=>utils.log(e))}),trackEvent('ui','updatePref-'+s,Ce[s])}runBtn.classList[Ce.autoPreview?'add':'remove']('hide'),Ee.querySelector('.CodeMirror').style.fontSize=Ce.fontSize,xe.querySelector('.CodeMirror').style.fontSize=Ce.fontSize,Me.querySelector('.CodeMirror').style.fontSize=Ce.fontSize,consoleEl.querySelector('.CodeMirror').style.fontSize=Ce.fontSize,indentationSizeValueEl.textContent=$('[data-setting=indentSize]').value,editorThemeLinkTag.href=`lib/codemirror/theme/${Ce.editorTheme}.css`,fontStyleTag.textContent=fontStyleTemplate.textContent.replace(/fontname/g,('other'===Ce.editorFont?Ce.editorCustomFont:Ce.editorFont)||'FiraCode'),customEditorFontInput.classList['other'===Ce.editorFont?'remove':'add']('hide'),['html','js','css'].forEach((e)=>{H.cm[e].setOption('indentWithTabs','spaces'!==$('[data-setting=indentWith]:checked').value),H.cm[e].setOption('blastCode',!!$('[data-setting=isCodeBlastOn]').checked&&{effect:2,shake:!1}),H.cm[e].setOption('indentUnit',+$('[data-setting=indentSize]').value),H.cm[e].setOption('tabSize',+$('[data-setting=indentSize]').value),H.cm[e].setOption('theme',$('[data-setting=editorTheme]').value),H.cm[e].setOption('keyMap',$('[data-setting=keymap]:checked').value),H.cm[e].setOption('lineWrapping',$('[data-setting=lineWrap]').checked),H.cm[e].refresh()}),H.consoleCm.setOption('theme',$('[data-setting=editorTheme]').value),H.acssSettingsCm.setOption('theme',$('[data-setting=editorTheme]').value),Ce.autoSave?!oe&&(oe=setInterval(m,15000)):(clearInterval(oe),oe=null),document.body.classList[Ce.lightVersion?'add':'remove']('light-version')},H.onNewBtnClick=function(){if(trackEvent('ui','newBtnClick'),re){var e=confirm('You have unsaved changes. Do you still want to create something new?');e&&C()}else C()},H.onOpenBtnClick=function(){trackEvent('ui','openBtnClick'),f()},H.onSaveBtnClick=function(){trackEvent('ui','saveBtnClick',le.id?'saved':'new'),c()},H.toggleModal=function(e){e.classList.toggle('is-modal-visible');const t=e.classList.contains('is-modal-visible');if(document.body.classList[t?'add':'remove']('overlay-visible'),t){function t(){e.querySelector('.js-modal__close-btn').focus(),e.querySelector('.modal__content').removeEventListener('transitionend',t)}e.querySelector('.modal__content').addEventListener('transitionend',t)}},H.onSearchInputChange=function(t){const e=t.target.value;let s;for(const[i,o]of Object.entries(de))s=$(`#js-saved-items-pane [data-item-id=${i}]`),-1===o.title.toLowerCase().indexOf(e)?s.classList.add('hide'):s.classList.remove('hide');trackEvent('ui','searchInputType')},H.toggleConsole=function(){consoleEl.classList.toggle('is-minimized'),trackEvent('ui','consoleToggle')},H.clearConsole=window.clearConsole=function(){H.consoleCm.setValue(''),we=0,logCountEl.textContent=we},H.onClearConsoleBtnClick=function(){H.clearConsole(),trackEvent('ui','consoleClearBtnClick')},H.evalConsoleExpr=function(t){(76===t.which||12===t.which)&&t.ctrlKey?(H.clearConsole(),trackEvent('ui','consoleClearKeyboardShortcut')):13===t.which&&(window.onMessageFromConsole('> '+t.target.value),je.contentWindow._wmEvaluate(t.target.value),t.target.value='',trackEvent('fn','evalConsoleExpr'))},window.onMessageFromConsole=function(){[...arguments].forEach(function(e){e&&e.indexOf&&-1!==e.indexOf('filesystem:chrome-extension')&&(e=e.replace(/filesystem:chrome-extension.*\.js:(\d+):*(\d*)/g,'script $1:$2'));try{H.consoleCm.replaceRange(e+' '+((e+'').match(/\[object \w+]/)?JSON.stringify(e):'')+'\n',{line:Infinity})}catch(t){H.consoleCm.replaceRange('\uD83C\uDF00\n',{line:Infinity})}H.consoleCm.scrollTo(0,Infinity),we++}),logCountEl.textContent=we},H.onRunBtnClick=function(){H.setPreviewContent(!0,!0),trackEvent('ui','runBtnClick')},H.openDetachedPreview=function(){if(trackEvent('ui','detachPreviewBtnClick'),H.detachedWindow)return void H.detachedWindow.focus();var e=je.getBoundingClientRect();const t=e.width,s=e.height;document.body.classList.add('is-detached-mode'),globalConsoleContainerEl.insertBefore(consoleEl,null),H.detachedWindow=window.open('./preview.html','Web Maker',`width=${t},height=${s},resizable,scrollbars=yes,status=1`),setTimeout(()=>{H.setPreviewContent(!0)},1500);var i=window.setInterval(function(){H.detachedWindow&&H.detachedWindow.closed&&(clearInterval(i),document.body.classList.remove('is-detached-mode'),$('#js-demo-side').insertBefore(consoleEl,null),H.detachedWindow=null,H.setPreviewContent(!0))},500)},H.openCssSettingsModal=function(){H.toggleModal(cssSettingsModal),setTimeout(()=>{H.acssSettingsCm.refresh(),H.acssSettingsCm.focus()},500),trackEvent('ui','cssSettingsBtnClick')},H.onModalCloseBtnClick=function(t){j(),t.preventDefault()},H.openSupportDeveloperModal=function(t){j(),H.toggleModal(pledgeModal),t&&trackEvent('ui',t.target.dataset.eventAction)},H.updateProfileUi=()=>{window.user?(document.body.classList.add('is-logged-in'),headerAvatarImg.src=profileAvatarImg.src=window.user.photoURL||'data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\'%3E%3Cpath fill=\'#ccc\' d=\'M12,19.2C9.5,19.2 7.29,17.92 6,16C6.03,14 10,12.9 12,12.9C14,12.9 17.97,14 18,16C16.71,17.92 14.5,19.2 12,19.2M12,5A3,3 0 0,1 15,8A3,3 0 0,1 12,11A3,3 0 0,1 9,8A3,3 0 0,1 12,5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\' /%3E%3C/svg%3E',profileUserName.textContent=window.user.displayName||'Anonymous Creator'):(document.body.classList.remove('is-logged-in'),headerAvatarImg.src=profileAvatarImg.src='',profileUserName.textContent='Anonymous Creator')},H.login=(t)=>{const e=t.target.dataset.authProvider;trackEvent('ui','loginProviderClick',e),window.login(e),t&&t.preventDefault()},H.logout=(t)=>{if(t.preventDefault(),re){var e=confirm('You have unsaved changes. Do you still want to logout?');if(!e)return}trackEvent('fn','loggedOut'),window.logout()},H.dontAskToImportAnymore=(t)=>{H.toggleModal(askToImportModal),window.localStorage[se.ASKED_TO_IMPORT_CREATIONS]=!0,t&&trackEvent('ui','dontAskToImportBtnClick')},H.importCreationsAndSettingsIntoApp=()=>{U(H.oldSavedItems).then(()=>{trackEvent('fn','oldItemsImported'),H.dontAskToImportAnymore()})},H.closeAllOverlays=j,function(){function t(e){return function(){return d('layoutMode',e),trackEvent('ui','toggleLayoutClick',e),a(e),!1}}function o(t){consoleEl.style.height=p+u-t.pageY+'px'}firebase.initializeApp({apiKey:'AIzaSyBl8Dz7ZOE7aP75mipYl2zKdLSRzBU2fFc',authDomain:'web-maker-app.firebaseapp.com',databaseURL:'https://web-maker-app.firebaseio.com',projectId:'web-maker-app',storageBucket:'web-maker-app.appspot.com',messagingSenderId:'560473480645'}),firebase.auth().onAuthStateChanged(function(t){H.closeAllOverlays(),t?(utils.log('You are -> ',t),e.add('You are now logged in!'),H.user=window.user=t,!window.localStorage[se.ASKED_TO_IMPORT_CREATIONS]&&window.oldSavedCreationsCountEl&&b(!1,!0).then((e)=>{e.length&&(H.oldSavedItems=e,window.oldSavedCreationsCountEl.textContent=e.length,H.toggleModal(askToImportModal),trackEvent('ui','askToImportModalSeen'))}),window.db.getUser(t.uid).then((e)=>{e&&(Object.assign(Ce,t.settings),K(),H.updateSetting())})):delete window.user,H.updateProfileUi()});var n;CodeMirror.modeURL=`lib/codemirror/mode/%N/%N.js`,window.db.local.get({lastAuthProvider:''},(e)=>{e.lastAuthProvider&&document.body.classList.add(`last-login-${e.lastAuthProvider}`)}),document.body.style.height=`${window.innerHeight}px`,layoutBtn1.addEventListener('click',t(1)),layoutBtn2.addEventListener('click',t(2)),layoutBtn3.addEventListener('click',t(3)),layoutBtn4.addEventListener('click',t(4)),layoutBtn5.addEventListener('click',t(5)),notificationsBtn.addEventListener('click',function(){return H.toggleModal(notificationsModal),notificationsModal.classList.contains('is-modal-visible')&&!ve&&(ve=!0,notificationsBtn.classList.remove('has-new'),window.db.setUserLastSeenVersion(Y)),trackEvent('ui','notificationButtonClick',Y),!1}),codepenBtn.addEventListener('click',function(t){if(Se===Z.ACSS)return alert('Oops! CodePen doesn\'t supports Atomic CSS currently.'),void t.preventDefault();var e={title:'A Web Maker experiment',html:H.cm.html.getValue(),css:H.cm.css.getValue(),js:H.cm.js.getValue(),html_pre_processor:ee[be].codepenVal,css_pre_processor:ee[Se].codepenVal,js_pre_processor:ee[fe].codepenVal,css_external:Fe.value.split('\n').join(';'),js_external:Be.value.split('\n').join(';')};le.title.match(/Untitled\s\d\d*-\d/)||(e.title=le.title),e=JSON.stringify(e),Te.querySelector('input').value=e,Te.submit(),trackEvent('ui','openInCodepen'),t.preventDefault()}),utils.onButtonClick(saveHtmlBtn,function(){F(),trackEvent('ui','saveHtmlClick')}),utils.onButtonClick(Ae,v),utils.onButtonClick(Ie,function(t){t.target.classList.contains('js-saved-item-tile')&&(setTimeout(function(){L(t.target.dataset.itemId)},350),v()),t.target.classList.contains('js-saved-item-tile__remove-btn')?k(t.target.parentElement.parentElement.dataset.itemId):t.target.classList.contains('js-saved-item-tile__fork-btn')&&(v(),setTimeout(function(){y(de[t.target.parentElement.parentElement.dataset.itemId])},350))}),Pe.addEventListener('blur',function(){le.id&&(c(),trackEvent('ui','titleChanged'))}),$all('.js-mode-select').forEach((e)=>{e.addEventListener('change',function(t){var e=t.target.value,s=t.target.dataset.type,i='html'===s?be:'css'===s?Se:fe;i!==e&&('html'===s?x(e).then(()=>H.setPreviewContent(!0)):'js'===s?T(e).then(()=>H.setPreviewContent(!0)):'css'===s&&M(e).then(()=>H.setPreviewContent(!0)),trackEvent('ui','updateCodeMode',e))})});var r=$all('.js-code-collapse-btn');r.forEach(function(e){e.addEventListener('click',function(t){var e=t.currentTarget.parentElement.parentElement.parentElement;return i(e),trackEvent('ui','paneCollapseBtnClick',e.dataset.type),!1})}),[Ee,xe,Me].forEach(function(e){e.addEventListener('transitionend',function(){s()})}),window.addEventListener('keydown',function(e){(e.ctrlKey||e.metaKey)&&83===e.keyCode&&(e.preventDefault(),c(),trackEvent('ui','saveItemKeyboardShortcut')),(e.ctrlKey||e.metaKey)&&e.shiftKey&&53===e.keyCode?(e.preventDefault(),H.setPreviewContent(!0,!0),trackEvent('ui','previewKeyboardShortcut')):(e.ctrlKey||e.metaKey)&&79===e.keyCode?(e.preventDefault(),f(),trackEvent('ui','openCreationKeyboardShortcut')):(e.ctrlKey||e.metaKey)&&e.shiftKey&&191===e.keyCode?(e.preventDefault(),H.toggleModal(keyboardShortcutsModal),trackEvent('ui','showKeyboardShortcutsShortcut')):27===e.keyCode&&j()}),Ie.addEventListener('keydown',function(e){if(!ke)return;const t=e.ctrlKey||e.metaKey,s=t&&70===e.keyCode,i=40===e.keyCode,o=38===e.keyCode,n=13===e.keyCode,a=$('.js-saved-item-tile.selected'),l=0!==$all('.js-saved-item-tile').length;if((i||o)&&l){const e=i?'nextUntil':'previousUntil';a?(a.classList.remove('selected'),a[e]('.js-saved-item-tile:not(.hide)').classList.add('selected')):$('.js-saved-item-tile:not(.hide)').classList.add('selected'),$('.js-saved-item-tile.selected').scrollIntoView(!1)}n&&a&&(setTimeout(function(){L(a.dataset.itemId)},350),v()),s&&(e.preventDefault(),setTimeout(function(){y(de[a.dataset.itemId])},350),v(),trackEvent('ui','forkKeyboardShortcut'))}),window.addEventListener('click',function(t){'string'!=typeof t.target.className||(t.target.classList.contains('modal-overlay')||t.target.classList.contains('modal'))&&j()}),window.addEventListener('dblclick',function(t){var e=t.target;if(e.classList.contains('js-console__header')&&(H.toggleConsole(),trackEvent('ui','consoleToggleDblClick')),e.classList.contains('js-code-wrap__header')){var s=e.parentElement;i(s),trackEvent('ui','paneHeaderDblClick',s.dataset.type)}});var m=window.jsLibs.reduce((e,t)=>e+``,'');Ne.children[1].innerHTML=m,m=window.cssLibs.reduce((e,t)=>e+``,''),Ne.children[2].innerHTML=m,Ne.addEventListener('change',function(t){var e=t.target;e.value&&($('#js-external-'+e.selectedOptions[0].dataset.type).value+='\n'+e.value,trackEvent('ui','addLibrarySelect',e.selectedOptions[0].label),l(),e.value='')}),Be.addEventListener('blur',l),Fe.addEventListener('blur',l),new TextareaAutoComplete(Be,{filter:(e)=>e.latest.match(/\.js$/)}),new TextareaAutoComplete(Fe,{filter:(e)=>e.latest.match(/\.css$/)}),new TextareaAutoComplete(externalLibrarySearchInput,{selectedCallback:(e)=>{const t=e.match(/\.js$/)?Be:Fe;t.value=`${t.value}\n${e}`,externalLibrarySearchInput.value=''}});var u,p;$('.js-console__header').addEventListener('mousedown',(t)=>{u=t.pageY,p=consoleEl.getBoundingClientRect().height,$('#demo-frame').classList.add('pointer-none'),window.addEventListener('mousemove',o)}),$('.js-console__header').addEventListener('mouseup',()=>{window.removeEventListener('mousemove',o),$('#demo-frame').classList.remove('pointer-none')}),db.local.get({layoutMode:1,code:''},function(e){a(e.layoutMode),Ce.layoutMode=e.layoutMode,e.code&&(n=e.code)}),db.getSettings(J).then((e)=>{e.preserveLastCode&&n?(re=0,n.id&&window.IS_EXTENSION?db.local.get(n.id,function(e){e[n.id]&&(utils.log('Load item ',n.id),le=e[n.id],w())}):(utils.log('Load last unsaved item',n),le=n,w())):C(),Object.assign(Ce,e),K(),H.updateSetting()}),db.getUserLastSeenVersion().then((e)=>{e||(onboardModal.classList.add('is-modal-visible'),-1===document.cookie.indexOf('onboarded')&&(trackEvent('ui','onboardModalSeen',Y),document.cookie='onboarded=1'),window.db.setUserLastSeenVersion(Y)),e&&-1===utils.semverCompare(e,Y)&&!window.localStorage.pledgeModalSeen&&(H.openSupportDeveloperModal(),window.localStorage.pledgeModalSeen=!0),e&&-1!==utils.semverCompare(e,Y)||(notificationsBtn.classList.add('has-new'),ve=!1)}),H.acssSettingsCm=CodeMirror.fromTextArea(acssSettingsTextarea,{mode:'application/ld+json'}),H.acssSettingsCm.on('blur',()=>{H.setPreviewContent(!0)});var g='';['3024-day','3024-night','abcdef','ambiance','base2tone-meadow-dark','base16-dark','base16-light','bespin','blackboard','cobalt','colorforth','dracula','duotone-dark','duotone-light','eclipse','elegant','erlang-dark','hopscotch','icecoder','isotope','lesser-dark','liquibyte','material','mbo','mdn-like','midnight','monokai','neat','neo','night','panda-syntax','paraiso-dark','paraiso-light','pastel-on-dark','railscasts','rubyblue','seti','solarized dark','solarized light','the-matrix','tomorrow-night-bright','tomorrow-night-eighties','ttcn','twilight','vibrant-ink','xq-dark','xq-light','yeti','zenburn'].forEach((e)=>{g+=''}),document.querySelector('[data-setting="editorTheme"]').innerHTML=g,requestAnimationFrame(G),window.addEventListener('focusin',(t)=>{if(document.body.classList.contains('overlay-visible')){const e=$('.is-modal-visible');if(!e)return;e.contains(t.target)||(t.preventDefault(),e.querySelector('.js-modal__close-btn').focus())}})}()}(window.alertsService,window.itemService),function(e){function t(e){s&&(!e||e!==s)&&(s.classList.remove('open'),s=null)}var s;(function(){var i=e('[dropdown]');i.forEach(function(e){e.addEventListener('click',function(i){t(i.currentTarget),i.currentTarget.classList.toggle('open'),s=i.currentTarget,i.stopPropagation()})}),document.addEventListener('click',function(){t()})})()}($all); \ No newline at end of file +/** + * Copyright 2015 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-env browser */ + +if ( + 'serviceWorker' in navigator && + document.cookie.indexOf('wmdebug') === -1 && + location.href.indexOf('chrome-extension://') === -1 && + location.href.indexOf('localhost') === -1 && + location.href.indexOf('192.168') === -1 +) { + // Delay registration until after the page has loaded, to ensure that our + // precaching requests don't degrade the first visit experience. + // See https://developers.google.com/web/fundamentals/instant-and-offline/service-worker/registration + window.addEventListener('load', function() { + // Your service-worker.js *must* be located at the top-level directory relative to your site. + // It won't be able to control pages unless it's located at the same level or higher than them. + // *Don't* register service worker file in, e.g., a scripts/ sub-directory! + // See https://github.com/slightlyoff/ServiceWorker/issues/468 + navigator.serviceWorker + .register('service-worker.js') + .then(function(reg) { + // updatefound is fired if service-worker.js changes. + reg.onupdatefound = function() { + // The updatefound event implies that reg.installing is set; see + // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event + var installingWorker = reg.installing; + + installingWorker.onstatechange = function() { + /* eslint-disable default-case */ + switch (installingWorker.state) { + case 'installed': + if (navigator.serviceWorker.controller) { + // At this point, the old content will have been purged and the fresh content will + // have been added to the cache. + // It's the perfect time to display a "New content is available; please refresh." + // message in the page's interface. + console.log('New or updated content is available.'); + } else { + // At this point, everything has been precached. + // It's the perfect time to display a "Content is cached for offline use." message. + console.log('Content is now available offline!'); + if (window.alertsService) { + window.alertsService.add( + 'Web Maker is now ready to be used offline.' + ); + } + } + break; + + case 'redundant': + console.error( + 'The installing service worker became redundant.' + ); + break; + } + }; + }; + }) + .catch(function(e) { + console.error('Error during service worker registration:', e); + }); + }); +} + +webpackJsonp([0],{JkW7:function(e,t,n){"use strict";function o(){var e={},t=new Promise(function(t,n){e.resolve=t,e.reject=n});return e.promise=t,D(e,t)}function s(e,t){var n=o();return t===F.HTML?n.resolve({code:e}):t===F.MARKDOWN?n.resolve(window.marked?{code:marked(e)}:{code:e}):t===F.JADE&&n.resolve(window.jade?{code:jade.render(e)}:{code:e}),n.promise}function i(e,t,n){var s,i=o();if(t===N.CSS)i.resolve({code:e});else if(t===N.SCSS||t===N.SASS)window.sass&&e?window.sass.compile(e,{indentedSyntax:t===N.SASS},function(e){e.line&&e.message&&(s={lang:"css",data:[{lineNumber:e.line-1,message:e.message}]}),i.resolve({code:e.text,errors:s})}):i.resolve({code:e});else if(t===N.LESS)less.render(e).then(function(e){i.resolve({code:e.css})},function(e){s={lang:"css",data:[{lineNumber:e.line,message:e.message}]},i.resolve({code:"",errors:s})});else if(t===N.STYLUS)stylus(e).render(function(e,t){if(e){window.err=e;var n=e.message.split("\n");n.pop(),s={lang:"css",data:[{lineNumber:+e.message.match(/stylus:(\d+):/)[1]-298,message:n.pop()}]}}i.resolve({code:t,errors:s})});else if(t===N.ACSS)if(!window.atomizer)i.resolve({code:""});else{const t=atomizer.findClassNames(e);var a;try{a=atomizer.getConfig(t,JSON.parse(n.acssConfig))}catch(n){a=atomizer.getConfig(t,{})}const o=atomizer.getCss(a);i.resolve({code:o})}return i.promise}function a(e,t,n,s){var i,a=o();if(!e)return a.resolve(""),a.promise;if(t===W.JS)try{R.parse(e,{tolerant:!0})}catch(t){i={lang:"js",data:[{lineNumber:t.lineNumber-1,message:t.description}]}}finally{!1!==n&&(e=i?e:h(e,{timeout:s})),a.resolve({code:e,errors:i})}else if(t===W.COFFEESCRIPT){if(!window.CoffeeScript)return a.resolve(""),a.promise;try{e=CoffeeScript.compile(e,{bare:!0})}catch(t){i={lang:"js",data:[{lineNumber:t.location.first_line,message:t.message}]}}finally{!1!==n&&(e=i?e:h(e,{timeout:s})),a.resolve({code:e,errors:i})}}else if(t===W.ES6){if(!window.Babel)return a.resolve(""),a.promise;try{R.parse(e,{tolerant:!0,jsx:!0})}catch(t){i={lang:"js",data:[{lineNumber:t.lineNumber-1,message:t.description}]}}finally{e=Babel.transform(e,{presets:["latest","stage-2","react"]}).code,!1!==n&&(e=i?e:h(e,{timeout:s})),a.resolve({code:e,errors:i})}}else if(t===W.TS)try{if(!window.ts)return a.resolve({code:""}),a.promise;e=ts.transpileModule(e,{reportDiagnostics:!0,compilerOptions:{noEmitOnError:!0,diagnostics:!0,module:ts.ModuleKind.ES2015}}),e.diagnostics.length&&(i={lang:"js",data:[{message:e.diagnostics[0].messageText,lineNumber:ts.getLineOfLocalPosition(e.diagnostics[0].file,e.diagnostics[0].start)-1}]}),e=e.outputText,!1===n||i||(e=h(e,{timeout:s})),a.resolve({code:e,errors:i})}catch(t){}return a.promise}function r(e,t){for(var n=e.split("."),o=t.split("."),s=0;3>s;s++){var i=+n[s],a=+o[s];if(i>a)return 1;if(a>i)return-1;if(!isNaN(i)&&isNaN(a))return 1;if(isNaN(i)&&!isNaN(a))return-1}return 0}function l(e){for(var t="",n=e||10;n--;)t+=q[~~(Math.random()*q.length)];return t}function c(){window.DEBUG&&console.log(Date.now(),...arguments)}function h(e,{timeout:t}){var n=1,o=[],s="_wmloopvar",i=`\nif (Date.now() - %d > ${t}) { window.top.previewException(new Error("Infinite loop")); break;}\n`;return U.parse(e,{tolerant:!0,range:!0,jsx:!0},function(e){switch(e.type){case"DoWhileStatement":case"ForStatement":case"ForInStatement":case"ForOfStatement":case"WhileStatement":var t=1+e.body.range[0],a=e.body.range[1],r=i.replace("%d",s+n),l="";"BlockStatement"!==e.body.type&&(r="{"+r,l="}",--t),o.push({pos:t,str:r}),o.push({pos:a,str:l}),o.push({pos:e.range[0],str:"var %d = Date.now();\n".replace("%d",s+n)}),++n;break;default:}}),o.sort(function(e,t){return t.pos-e.pos}).forEach(function(t){e=e.slice(0,t.pos)+t.str+e.slice(t.pos)}),e}function d(e){var t=new Date(e),n=t.getDate()+" "+["January","February","March","April","May","June","July","August","September","October","November","December"][t.getMonth()]+" "+t.getFullYear();return n}function p(e,t){function n(){var n=document.createElement("a");n.href=window.URL.createObjectURL(t),n.download=e,n.style.display="none",document.body.appendChild(n),n.click(),n.remove()}window.IS_EXTENSION?chrome.downloads.download({url:window.URL.createObjectURL(t),filename:e,saveAs:!0},()=>{chrome.runtime.lastError&&n()}):n()}function u(e,t,n){function o(e){return function(){c(arguments),v("fn","error",e),u.errorCount=(u.errorCount||0)+1,4===u.errorCount&&setTimeout(function(){alert("Oops! Seems like your preview isn't updating. It's recommended to switch to the web app: https://webmakerapp.com/app/.\n\n If you still want to get the extension working, please try the following steps until it fixes:\n - Refresh Web Maker\n - Restart browser\n - Update browser\n - Reinstall Web Maker (don't forget to export all your creations from saved items pane (click the OPEN button) before reinstalling)\n\nIf nothing works, please tweet out to @webmakerApp."),v("ui","writeFileMessageSeen")},1e3)}}var s=!1;window.webkitRequestFileSystem(window.TEMPORARY,5242880,function(i){i.root.getFile(e,{create:!0},function(e){e.createWriter((e)=>{e.onwriteend=function(){return s?n():(s=!0,e.seek(0),e.write(t),!1)},e.truncate(0)},o("createWriterFail"))},o("getFileFail"))},o("webkitRequestFileSystemFail"))}function m(e){var t=o(),n=window.document.getElementsByTagName("script")[0],s=window.document.createElement("script");return s.src=e,s.async=!0,n.parentNode.insertBefore(s,n),s.onload=function(){t.resolve()},t.promise}function g(e,t,n,o,s){if(!o)return"";var i=o.externalLibs.js.split("\n").reduce(function(e,t){return e+(t?"\n":"")},""),a=o.externalLibs.css.split("\n").reduce(function(e,t){return e+(t?"\n":"")},""),r="\n\n\n\n"+a+"\n\n\n\n"+e+"\n"+i+"\n";if(s||(r+=""),o.jsMode===W.ES6&&(r+=""),"string"==typeof n)r+="\n\n",r}function f(e){var t=s(e.html,e.htmlMode),n=i(e.css,e.cssMode),o=a(e.js,e.jsMode,!1);Promise.all([t,n,o]).then(function(t){var n=t[0].code,o=t[1].code,s=t[2].code,i=g(n,o,s,e,!0),a=new Date,r=["web-maker",a.getFullYear(),a.getMonth()+1,a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds()].join("-");e.title&&(r=e.title),r+=".html";var l=new Blob([i],{type:"text/html;charset=UTF-8"});p(r,l),v("fn","saveFileComplete")})}function b(){var e=o();return window.IS_EXTENSION?(chrome.permissions.contains({permissions:["downloads"]},function(t){t?e.resolve():chrome.permissions.request({permissions:["downloads"]},function(t){t?(v("fn","downloadsPermGiven"),e.resolve()):e.reject()})}),e.promise):(e.resolve(),e.promise)}function v(e,t,n,o){return window.DEBUG?void c("trackevent",e,t,n,o):void(window.ga&&ga("send","event",e,t,n,o))}function C(e,t){var n={};for(var o in e)0<=t.indexOf(o)||Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}function y(e){return Object(V.h)(Y,J({Tag:"a"},e))}function S(e){return Object(V.h)(Y,J({Tag:"button"},e))}function w(e){return Object(V.h)("div",{class:"main-header"},Object(V.h)("input",{type:"text",id:"titleInput",title:"Click to edit",class:"item-title-input",value:e.title,onBlur:e.titleInputBlurHandler}),Object(V.h)("div",{class:"main-header__btn-wrap flex flex-v-center"},Object(V.h)("a",{id:"runBtn",class:"hide flex flex-v-center hint--rounded hint--bottom-left","aria-label":"Run preview (Ctrl/\u2318 + Shift + 5)",onClick:e.runBtnClickHandler},Z,"Run"),Object(V.h)(y,{onClick:e.addLibraryBtnHandler,"data-event-category":"ui","data-event-action":"addLibraryButtonClick",class:"flex-v-center hint--rounded hint--bottom-left","aria-label":"Add a JS/CSS library"},"Add library"," ",Object(V.h)("span",{id:"js-external-lib-count",style:`display:${e.externalLibCount?"inline":"none"}`,class:"count-label"},e.externalLibCount)),Object(V.h)("a",{class:"flex flex-v-center hint--rounded hint--bottom-left","aria-label":"Start a new creation",onClick:e.newBtnHandler},X,"New"),Object(V.h)("a",{id:"saveBtn",class:`flex flex-v-center hint--rounded hint--bottom-left ${e.isSaving?"is-loading":""} ${e.unsavedEditCount?"is-marked":0}`,"aria-label":"Save current creation (Ctrl/\u2318 + S)",onClick:e.saveBtnHandler},Q,ee,"Save"),Object(V.h)("a",{id:"openItemsBtn",class:`flex flex-v-center hint--rounded hint--bottom-left ${e.isFetchingItems?"is-loading":""}`,"aria-label":"Open a saved creation (Ctrl/\u2318 + O)",onClick:e.openBtnHandler},te,ne,"Open"),Object(V.h)(y,{onClick:e.loginBtnHandler,"data-event-category":"ui","data-event-action":"loginButtonClick",class:"hide-on-login flex flex-v-center hint--rounded hint--bottom-left","aria-label":"Login/Signup"},"Login/Signup"),Object(V.h)(y,{onClick:e.profileBtnHandler,"data-event-category":"ui","data-event-action":"headerAvatarClick","aria-label":"See profile or Logout",class:"hide-on-logout hint--rounded hint--bottom-left"},Object(V.h)("img",{id:"headerAvatarImg",width:"20",src:e.user?e.user.photoURL||G:"",class:"main-header__avatar-img"}))))}function k(e,t){var n=t;return function(){0==--n&&e()}}function x(e,t){var n=se.a.modes[e].dependencies;if(!n)return t();for(var o=[],s=0;s{e.root.getFile(d,{create:!0},(e)=>{e.createWriter((e)=>{e.onwriteend=t,e.write(i)},n)},n)},n)}function B(e){b().then(()=>{function t(n){var o=document.createElement("canvas"),s=e;o.width=s.width,o.height=s.height;var i=o.getContext("2d"),a=window.devicePixelRatio||1;i.drawImage(n,s.left*a,s.top*a,s.width*a,s.height*a,0,0,s.width,s.height),n.removeEventListener("load",t),j(o.toDataURL())}var n=document.createElement("style");n.textContent="[class*=\"hint\"]:after, [class*=\"hint\"]:before { display: none!important; }",document.body.appendChild(n),setTimeout(()=>{chrome.tabs.captureVisibleTab(null,{format:"png",quality:100},function(e){if(n.remove(),e){var o=new Image;o.src=e,o.addEventListener("load",()=>t(o,e))}})},50),v("ui","takeScreenshotBtnClick")})}function E({show:e,closeHandler:t,oldSavedCreationsCount:n,dontAskBtnClickHandler:o,importBtnClickHandler:s}){return Object(V.h)(bt,{extraClasses:"ask-to-import-modal",show:e,closeHandler:t},vs,Object(V.h)("div",null,Object(V.h)("p",null,"You have ",Object(V.h)("span",null,n)," creations saved in your local machine. Do you want to import those creations in your account so they are more secure and accessible anywhere?"),Cs,Object(V.h)("div",{class:"flex flex-h-end"},Object(V.h)("button",{onClick:o,class:"btn"},"Don't ask me again"),Object(V.h)("button",{onClick:s,class:"btn btn--primary ml-1"},"Yes, please import"))))}function O(e){return Object(V.h)(bt,{show:e.show,closeHandler:e.closeHandler},ws,Object(V.h)("div",null,ks,xs,Ms,_s,Object(V.h)("p",null,Object(V.h)(S,{"aria-label":"Support the developer",onClick:e.onSupportBtnClick,"data-event-action":"supportDeveloperHelpBtnClick","data-event-category":"ui",class:"btn btn-icon"},Ls,"Support the developer")," ",Is," ",Hs," ",As),js,Bs))}function T(e){return Object(V.h)(bt,{show:e.show,closeHandler:e.closeHandler},Es,Os,Ts,Object(V.h)("p",{class:"tac"},Object(V.h)("button",{class:"btn btn--primary",onClick:e.closeHandler},"Lets start!")))}Object.defineProperty(t,"__esModule",{value:!0});var V=n("KM04"),P=n.n(V),D=Object.assign||function(e){for(var t,n=1;n{}},window.$all=(e)=>[...document.querySelectorAll(e)],window.IS_EXTENSION=!!window.chrome.extension;const K=window.chrome.extension||window.DEBUG?"/":"/app";var q="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";Node.prototype.nextUntil=function(e){const t=Array.from(this.parentNode.querySelectorAll(e)),n=t.indexOf(this);return t[n+1]},Node.prototype.previousUntil=function(e){const t=Array.from(this.parentNode.querySelectorAll(e)),n=t.indexOf(this);return t[n-1]},window.requestIdleCallback=window.requestIdleCallback||function(e){setTimeout(e,10)},window.IS_EXTENSION?document.body.classList.add("is-extension"):document.body.classList.add("is-app"),!1;var J=Object.assign||function(e){for(var t,n=1;n{"function"==typeof this.props.onFocus&&this.props.onFocus(e)}),this.cm.on("change",this.props.onChange),this.cm.addKeyMap({"Ctrl-Space":"autocomplete"}),e.noAutocomplete||this.cm.on("inputRead",(e,t)=>{this.props.autoComplete&&"+input"===t.origin&&";"!==t.text[0]&&","!==t.text[0]&&" "!==t.text[0]&&ae.commands.autocomplete(this.cm,null,{completeSingle:!1})}),this.props.onCreation(this.cm)}render(){return Object(V.h)("textarea",{ref:(e)=>this.textarea=e,name:"",id:"",cols:"30",rows:"10"})}};var ht=n("mSND"),pt=n.n(ht);let ut=class extends V.Component{componentDidMount(){this.updateSplit()}componentWillUpdate(){this.splitInstance&&this.splitInstance.destroy()}componentDidUpdate(){this.updateSplit()}updateSplit(){const e={direction:this.props.direction,minSize:this.props.minSize,gutterSize:6,sizes:this.props.sizes};this.props.onDragEnd&&(e.onDragEnd=this.props.onDragEnd),this.props.onDragStart&&(e.onDragStart=this.props.onDragStart),this.splitInstance=pt()(this.props.children.map((e)=>"#"+e.attributes.id),e),this.props.onSplit&&this.props.onSplit(this.splitInstance)}render(){const e=this.props,{children:t}=e,n=M(e,["children"]);return Object(V.h)("div",n,this.props.children)}},mt=class extends V.Component{componentDidMount(){this.initEditor()}shouldComponentUpdate(){return!1}initEditor(){this.cm=ae.fromTextArea(this.textarea,this.props.options),this.props.onChange&&this.cm.on("change",this.props.onChange),this.props.onBlur&&this.cm.on("blur",this.props.onBlur),this.props.onCreation(this.cm)}render(){return Object(V.h)("textarea",{ref:(e)=>this.textarea=e,name:"",id:"",cols:"30",rows:"10"})}};var gt=n("q6qL"),ft=n.n(gt);let bt=class extends V.Component{componentDidMount(){window.addEventListener("keydown",this.onKeyDownHandler.bind(this))}componentWillUnmount(){window.removeEventListener("keydown",this.onKeyDownHandler.bind(this))}onKeyDownHandler(t){27===t.keyCode&&this.props.closeHandler()}onOverlayClick(t){t.target===this.overlayEl&&this.props.closeHandler()}componentDidUpdate(e){this.props.show!==e.show&&(document.body.classList[this.props.show?"add":"remove"]("overlay-visible"),this.props.show&&setTimeout(()=>{this.overlayEl.querySelector(".js-modal__close-btn").focus()},0))}render(){return this.props.show?Object(V.h)(ft.a,{into:"body"},Object(V.h)("div",{class:`${this.props.extraClasses||""} modal is-modal-visible`,ref:(e)=>this.overlayEl=e,onClick:this.onOverlayClick.bind(this)},Object(V.h)("div",{class:"modal__content"},Object(V.h)("button",{type:"button",onClick:this.props.closeHandler,"aria-label":"Close modal",title:"Close",class:"js-modal__close-btn modal__close-btn"},"Close"),this.props.children))):null}};var vt=Object(V.h)("h1",null,"Atomic CSS Settings"),Ct=Object(V.h)("h3",null,"Configure Atomizer settings."," ",Object(V.h)("a",{href:"https://github.com/acss-io/atomizer#api",target:"_blank",rel:"noopener noreferrer"},"Read more")," ","about available settings.");let yt=class extends V.Component{componentDidUpdate(){this.props.show&&setTimeout(()=>{this.props.settings&&this.cm.setValue(this.props.settings.acssConfig),this.cm.refresh(),this.cm.focus()},500)}render(){return Object(V.h)(bt,{show:this.props.show,closeHandler:this.props.closeHandler},vt,Ct,Object(V.h)("div",{style:"height: calc(100vh - 350px);"},Object(V.h)(mt,{options:{mode:"application/ld+json",theme:this.props.editorTheme},onCreation:(e)=>this.cm=e,onBlur:(e)=>this.props.onChange(e.getValue())})),Object(V.h)("div",{class:"flex flex-h-end"},Object(V.h)("button",{class:"btn btn--primary",onClick:this.props.closeHandler},"Apply and Close")))}};const St=33;var wt=Object(V.h)("span",{class:"caret"}),kt=Object(V.h)("option",{value:"html"},"HTML"),xt=Object(V.h)("option",{value:"markdown"},"Markdown"),Mt=Object(V.h)("option",{value:"jade"},"Pug"),_t=Object(V.h)("span",{class:"caret"}),Lt=Object(V.h)("option",{value:"css"},"CSS"),It=Object(V.h)("option",{value:"scss"},"SCSS"),Ht=Object(V.h)("option",{value:"sass"},"SASS"),At=Object(V.h)("option",{value:"less"},"LESS"),jt=Object(V.h)("option",{value:"stylus"},"Stylus"),Bt=Object(V.h)("option",{value:"acss"},"Atomic CSS"),Et=Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#settings-icon"})),Ot=Object(V.h)("span",{class:"caret"}),Tt=Object(V.h)("option",{value:"js"},"JS"),Vt=Object(V.h)("option",{value:"coffee"},"CoffeeScript"),Pt=Object(V.h)("option",{value:"es6"},"ES6 (Babel)"),Dt=Object(V.h)("option",{value:"typescript"},"TypeScript"),Ft=Object(V.h)("span",{class:"code-wrap__header-label"},"Console (",Object(V.h)("span",{id:"logCountEl"},"0"),")"),Nt=Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#cancel-icon"})),Wt=Object(V.h)("svg",{width:"18",height:"18",fill:"#346fd2"},Object(V.h)("use",{xlinkHref:"#chevron-icon"}));let zt=class extends V.Component{constructor(e){super(e),this.state={isConsoleOpen:!1,isCssSettingsModalOpen:!1},this.updateTimer=null,this.updateDelay=500,this.htmlMode=F.HTML,this.jsMode=F.HTML,this.cssMode=N.CSS,this.jsMode=W.JS,this.prefs={},this.codeInPreview={html:null,css:null,js:null},this.cmCodes={html:e.currentItem.html,css:"",js:""},this.cm={},this.logCount=0,window.onMessageFromConsole=this.onMessageFromConsole.bind(this),window.previewException=this.previewException.bind(this),window.clearConsole=this.clearConsole.bind(this)}shouldComponentUpdate(e,t){return this.state.isConsoleOpen!==t.isConsoleOpen||this.state.isCssSettingsModalOpen!==t.isCssSettingsModalOpen||this.state.codeSplitSizes!==t.codeSplitSizes||this.state.mainSplitSizes!==t.mainSplitSizes||this.props.currentLayoutMode!==e.currentLayoutMode||this.props.currentItem!==e.currentItem}componentDidUpdate(){window.logCountEl.textContent=this.logCount}componentDidMount(){this.props.onRef(this)}onHtmlCodeChange(e,t){this.cmCodes.html=e.getValue(),this.props.onCodeChange("html",this.cmCodes.html,"setValue"!==t.origin),this.onCodeChange(e,t)}onCssCodeChange(e,t){this.cmCodes.css=e.getValue(),this.props.onCodeChange("css",this.cmCodes.css,"setValue"!==t.origin),this.onCodeChange(e,t)}onJsCodeChange(e,t){this.cmCodes.js=e.getValue(),this.props.onCodeChange("js",this.cmCodes.js,"setValue"!==t.origin),this.onCodeChange(e,t)}onCodeChange(e,t){clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>{"setValue"!==t.origin&&(!1!==this.prefs.autoPreview&&this.setPreviewContent(),v.previewCount=(v.previewCount||0)+1,4===v.previewCount&&v("fn","usingPreview"))},this.updateDelay)}createPreviewFile(e,t,n){const o=!window.webkitRequestFileSystem||!window.IS_EXTENSION;var s=g(e,t,o?n:null,this.props.currentItem),i=new Blob([s],{type:"text/plain;charset=UTF-8"}),a=new Blob([n],{type:"text/plain;charset=UTF-8"});!v.hasTrackedCode&&(e||t||n)&&(v("fn","hasCode"),v.hasTrackedCode=!0),o?this.detachedWindow?(c("\u2709\uFE0F Sending message to detached window"),this.detachedWindow.postMessage({contents:s},"*")):(this.frame.src=this.frame.src,setTimeout(()=>{this.frame.contentDocument.open(),this.frame.contentDocument.write(s),this.frame.contentDocument.close()},10)):u("script.js",a,()=>{u("preview.html",i,()=>{var e=chrome.i18n.getMessage()?`chrome-extension://${chrome.i18n.getMessage("@@extension_id")}`:`${location.origin}`,t=`filesystem:${e}/temporary/preview.html`;this.detachedWindow?this.detachedWindow.postMessage(t,"*"):this.frame.src=t})})}cleanupErrors(e){this.cm[e].clearGutter("error-gutter")}showErrors(e,t){var o=this.cm[e];t.forEach(function(t){o.operation(function(){var e=document.createElement("div");e.setAttribute("data-title",t.message),e.classList.add("gutter-error-marker"),o.setGutterMarker(t.lineNumber,"error-gutter",e)})})}setPreviewContent(e,t){if(!this.props.prefs.autoPreview&&!t)return;this.props.prefs.preserveConsoleLogs||this.clearConsole(),this.cleanupErrors("html"),this.cleanupErrors("css"),this.cleanupErrors("js");var n={html:this.cmCodes.html,css:this.cmCodes.css,js:this.cmCodes.js};c("\uD83D\uDD0E setPreviewContent",e);const o=this.detachedWindow?this.detachedWindow.document.querySelector("iframe"):this.frame,r=this.props.currentItem.cssMode;if(!e&&n.html===this.codeInPreview.html&&n.js===this.codeInPreview.js)i(r===N.ACSS?n.html:n.css,r,this.props.currentItem.cssSettings).then((e)=>{r===N.ACSS&&this.cm.css.setValue(e.code||""),o.contentDocument.querySelector("#webmakerstyle")&&(o.contentDocument.querySelector("#webmakerstyle").textContent=e.code||"")});else{var l=s(n.html,this.props.currentItem.htmlMode),d=i(r===N.ACSS?n.html:n.css,r,this.props.currentItem.cssSettings),h=a(n.js,this.props.currentItem.jsMode,!0,this.props.prefs.infiniteLoopTimeout);Promise.all([l,d,h]).then((e)=>{r===N.ACSS&&this.cm.css.setValue(e[1].code||""),this.createPreviewFile(e[0].code||"",e[1].code||"",e[2].code||""),e.forEach((e)=>{e.errors&&this.showErrors(e.errors.lang,e.errors.data)})})}this.codeInPreview.html=n.html,this.codeInPreview.css=n.css,this.codeInPreview.js=n.js}isValidItem(e){return!!e.title}refreshEditor(){this.cmCodes.html=this.props.currentItem.html,this.cmCodes.css=this.props.currentItem.css,this.cmCodes.js=this.props.currentItem.js,this.cm.html.setValue(this.cmCodes.html||""),this.cm.css.setValue(this.cmCodes.css||""),this.cm.js.setValue(this.cmCodes.js||""),this.cm.html.refresh(),this.cm.css.refresh(),this.cm.js.refresh(),this.clearConsole(),Promise.all([this.updateHtmlMode(this.props.currentItem.htmlMode),this.updateCssMode(this.props.currentItem.cssMode),this.updateJsMode(this.props.currentItem.jsMode)]).then(()=>this.setPreviewContent(!0))}applyCodemirrorSettings(e){this.cm&&(htmlCodeEl.querySelector(".CodeMirror").style.fontSize=cssCodeEl.querySelector(".CodeMirror").style.fontSize=jsCodeEl.querySelector(".CodeMirror").style.fontSize=`${parseInt(e.fontSize,10)}px`,window.consoleEl.querySelector(".CodeMirror").style.fontSize=`${parseInt(e.fontSize,10)}px`,window.editorThemeLinkTag.href=`lib/codemirror/theme/${e.editorTheme}.css`,window.fontStyleTag.textContent=window.fontStyleTemplate.textContent.replace(/fontname/g,("other"===e.editorFont?e.editorCustomFont:e.editorFont)||"FiraCode"),this.consoleCm.setOption("theme",e.editorTheme),["html","js","css"].forEach((t)=>{this.cm[t].setOption("indentWithTabs","spaces"!==e.indentWith),this.cm[t].setOption("blastCode",!!e.isCodeBlastOn&&{effect:2,shake:!1}),this.cm[t].setOption("indentUnit",+e.indentSize),this.cm[t].setOption("tabSize",+e.indentSize),this.cm[t].setOption("theme",e.editorTheme),this.cm[t].setOption("keyMap",e.keymap),this.cm[t].setOption("lineWrapping",e.lineWrap),this.cm[t].refresh()}))}updateCodeWrapCollapseStates(){clearTimeout(this.updateCodeWrapCollapseStates.timeout),this.updateCodeWrapCollapseStates.timeout=setTimeout(()=>{const{currentLayoutMode:e}=this.props,t=2===e||5===e?"width":"height";[htmlCodeEl,cssCodeEl,jsCodeEl].forEach(function(e){const n=e.getBoundingClientRect(),o=n[t];100>o?e.classList.add("is-minimized"):e.classList.remove("is-minimized"),-1===e.style[t].indexOf(`100% - ${2*St}px`)?e.classList.remove("is-maximized"):e.classList.add("is-maximized")})},50)}toggleCodeWrapCollapse(e){if(e.classList.contains("is-minimized")||e.classList.contains("is-maximized"))e.classList.remove("is-minimized"),e.classList.remove("is-maximized"),this.codeSplitInstance.setSizes([33.3,33.3,33.3]);else{const n=parseInt(e.dataset.codeWrapId,10);var t=[`${St}px`,`${St}px`,`${St}px`];t[n]=`calc(100% - ${2*St}px)`,this.codeSplitInstance.setSizes(t),e.classList.add("is-maximized")}}collapseBtnHandler(t){var e=t.currentTarget.parentElement.parentElement.parentElement;this.toggleCodeWrapCollapse(e),v("ui","paneCollapseBtnClick",e.dataset.type)}codeWrapHeaderDblClickHandler(t){if(t.target.classList.contains("js-code-wrap__header")){const e=t.target.parentElement;this.toggleCodeWrapCollapse(e),v("ui","paneHeaderDblClick",e.dataset.type)}}resetSplitting(){this.setState({codeSplitSizes:this.getCodeSplitSizes(),mainSplitSizes:this.getMainSplitSizesToApply()})}getMainSplitSizesToApply(){var e;const{currentItem:t,currentLayoutMode:n}=this.props;return e=t&&t.mainSizes?3===n?[t.mainSizes[1],t.mainSizes[0]]:t.mainSizes:5===n?[75,25]:[50,50],e}getCodeSplitSizes(){return this.props.currentItem&&this.props.currentItem.sizes?this.props.currentItem.sizes:[33.33,33.33,33.33]}mainSplitDragEndHandler(){this.props.prefs.refreshOnResize&&setTimeout(()=>{this.setPreviewContent(!0)},1)}codeSplitDragStart(){document.body.classList.add("is-dragging")}codeSplitDragEnd(){this.updateCodeWrapCollapseStates(),document.body.classList.remove("is-dragging")}handleModeRequirements(e){function t(){z[e].hasLoaded=!0,s.resolve()}const n="lib/transpilers";var s=o();return z[e].hasLoaded?(s.resolve(),s.promise):(e===F.JADE?m(`${n}/jade.js`).then(t):e===F.MARKDOWN?m(`${n}/marked.js`).then(t):e===N.LESS?m(`${n}/less.min.js`).then(t):e===N.SCSS||e===N.SASS?m(`${n}/sass.js`).then(function(){window.sass=new Sass(`${n}/sass.worker.js`),t()}):e===N.STYLUS?m(`${n}/stylus.min.js`).then(t):e===N.ACSS?m(`${n}/atomizer.browser.js`).then(t):e===W.COFFEESCRIPT?m(`${n}/coffee-script.js`).then(t):e===W.ES6?m(`${n}/babel.min.js`).then(t):e===W.TS?m(`${n}/typescript.js`).then(t):s.resolve(),s.promise)}updateHtmlMode(e){return this.props.onCodeModeChange("html",e),this.props.currentItem.htmlMode=e,this.cm.html.setOption("mode",z[e].cmMode),ae.autoLoadMode(this.cm.html,z[e].cmPath||z[e].cmMode),this.handleModeRequirements(e)}updateCssMode(e){return this.props.onCodeModeChange("css",e),this.props.currentItem.cssMode=e,this.cm.css.setOption("mode",z[e].cmMode),this.cm.css.setOption("readOnly",z[e].cmDisable),window.cssSettingsBtn.classList[z[e].hasSettings?"remove":"add"]("hide"),ae.autoLoadMode(this.cm.css,z[e].cmPath||z[e].cmMode),this.handleModeRequirements(e)}updateJsMode(e){return this.props.onCodeModeChange("js",e),this.props.currentItem.jsMode=e,this.cm.js.setOption("mode",z[e].cmMode),ae.autoLoadMode(this.cm.js,z[e].cmPath||z[e].cmMode),this.handleModeRequirements(e)}codeModeChangeHandler(t){var e=t.target.value,n=t.target.dataset.type,o=this.props.currentItem["html"===n?"htmlMode":"css"===n?"cssMode":"jsMode"];o!==e&&("html"===n?this.updateHtmlMode(e).then(()=>this.setPreviewContent(!0)):"js"===n?this.updateJsMode(e).then(()=>this.setPreviewContent(!0)):"css"===n&&this.updateCssMode(e).then(()=>this.setPreviewContent(!0)),v("ui","updateCodeMode",e))}detachPreview(){if(this.detachedWindow)return void this.detachedWindow.focus();const e=this.frame.getBoundingClientRect(),t=e.width,n=e.height;document.body.classList.add("is-detached-mode"),window.globalConsoleContainerEl.insertBefore(window.consoleEl,null),this.detachedWindow=window.open("./preview.html","Web Maker",`width=${t},height=${n},resizable,scrollbars=yes,status=1`),setTimeout(()=>{this.setPreviewContent(!0)},1500);var o=window.setInterval(function(){this.detachedWindow&&this.detachedWindow.closed&&(clearInterval(o),document.body.classList.remove("is-detached-mode"),$("#js-demo-side").insertBefore(window.consoleEl,null),this.detachedWindow=null,this.setPreviewContent(!0))}.bind(this),500)}onMessageFromConsole(){[...arguments].forEach((e)=>{e&&e.indexOf&&-1!==e.indexOf("filesystem:chrome-extension")&&(e=e.replace(/filesystem:chrome-extension.*\.js:(\d+):*(\d*)/g,"script $1:$2"));try{this.consoleCm.replaceRange(e+" "+((e+"").match(/\[object \w+]/)?JSON.stringify(e):"")+"\n",{line:Infinity})}catch(t){this.consoleCm.replaceRange("\uD83C\uDF00\n",{line:Infinity})}this.consoleCm.scrollTo(0,Infinity),this.logCount++}),logCountEl.textContent=this.logCount}previewException(e){console.error("Possible infinite loop detected.",e.stack),this.onMessageFromConsole("Possible infinite loop detected.",e.stack)}toggleConsole(){this.setState({isConsoleOpen:!this.state.isConsoleOpen}),v("ui","consoleToggle")}consoleHeaderDblClickHandler(t){t.target.classList.contains("js-console__header")&&(v("ui","consoleToggleDblClick"),this.toggleConsole())}clearConsole(){this.consoleCm.setValue(""),this.logCount=0,window.logCountEl.textContent=this.logCount}clearConsoleBtnClickHandler(){this.clearConsole(),v("ui","consoleClearBtnClick")}evalConsoleExpr(t){(76===t.which||12===t.which)&&t.ctrlKey?(this.clearConsole(),v("ui","consoleClearKeyboardShortcut")):13===t.which&&(this.onMessageFromConsole("> "+t.target.value),this.frame.contentWindow._wmEvaluate(t.target.value),t.target.value="",v("fn","evalConsoleExpr"))}cssSettingsBtnClickHandler(){this.setState({isCssSettingsModalOpen:!0}),v("ui","cssSettingsBtnClick")}cssSettingsChangeHandler(e){this.props.onCodeSettingsChange("css",e),this.setPreviewContent(!0)}getDemoFrame(e){e(this.frame)}editorFocusHandler(e){this.props.onEditorFocus(e)}render(){return Object(V.h)(ut,{class:"content-wrap flex flex-grow",sizes:this.state.mainSplitSizes,minSize:150,style:"",direction:2===this.props.currentLayoutMode?"vertical":"horizontal",onDragEnd:this.mainSplitDragEndHandler.bind(this)},Object(V.h)(ut,{class:"code-side",id:"js-code-side",sizes:this.state.codeSplitSizes,minSize:St,direction:2===this.props.currentLayoutMode||5===this.props.currentLayoutMode?"horizontal":"vertical",onDragStart:this.codeSplitDragStart.bind(this),onDragEnd:this.codeSplitDragEnd.bind(this),onSplit:(e)=>this.codeSplitInstance=e},Object(V.h)("div",{"data-code-wrap-id":"0",id:"htmlCodeEl","data-type":"html",class:"code-wrap",onTransitionEnd:this.updateCodeWrapCollapseStates.bind(this)},Object(V.h)("div",{class:"js-code-wrap__header code-wrap__header",title:"Double click to toggle code pane",onDblClick:this.codeWrapHeaderDblClickHandler.bind(this)},Object(V.h)("label",{class:"btn-group",dropdow:!0,title:"Click to change"},Object(V.h)("span",{class:"code-wrap__header-label"},z[this.props.currentItem.htmlMode||"html"].label),wt,Object(V.h)("select",{"data-type":"html",class:"js-mode-select hidden-select",onChange:this.codeModeChangeHandler.bind(this),value:this.props.currentItem.htmlMode},kt,xt,Mt)),Object(V.h)("div",{class:"code-wrap__header-right-options"},Object(V.h)("a",{class:"js-code-collapse-btn code-wrap__header-btn code-wrap__collapse-btn",title:"Toggle code pane",onClick:this.collapseBtnHandler.bind(this)}))),Object(V.h)(ct,{options:{mode:"htmlmixed",profile:"xhtml",gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],noAutocomplete:!0,matchTags:{bothTags:!0},emmet:!0},onChange:this.onHtmlCodeChange.bind(this),onCreation:(e)=>this.cm.html=e,onFocus:this.editorFocusHandler.bind(this)})),Object(V.h)("div",{"data-code-wrap-id":"1",id:"cssCodeEl","data-type":"css",class:"code-wrap",onTransitionEnd:this.updateCodeWrapCollapseStates.bind(this)},Object(V.h)("div",{class:"js-code-wrap__header code-wrap__header",title:"Double click to toggle code pane",onDblClick:this.codeWrapHeaderDblClickHandler.bind(this)},Object(V.h)("label",{class:"btn-group",title:"Click to change"},Object(V.h)("span",{class:"code-wrap__header-label"},z[this.props.currentItem.cssMode||"css"].label),_t,Object(V.h)("select",{"data-type":"css",class:"js-mode-select hidden-select",onChange:this.codeModeChangeHandler.bind(this),value:this.props.currentItem.cssMode},Lt,It,Ht,At,jt,Bt)),Object(V.h)("div",{class:"code-wrap__header-right-options"},Object(V.h)("a",{href:"#",id:"cssSettingsBtn",title:"Atomic CSS configuration",onClick:this.cssSettingsBtnClickHandler.bind(this),class:"code-wrap__header-btn hide"},Et),Object(V.h)("a",{class:"js-code-collapse-btn code-wrap__header-btn code-wrap__collapse-btn",title:"Toggle code pane",onClick:this.collapseBtnHandler.bind(this)}))),Object(V.h)(ct,{options:{mode:"css",gutters:["error-gutter","CodeMirror-linenumbers","CodeMirror-foldgutter"],emmet:!0},onChange:this.onCssCodeChange.bind(this),onCreation:(e)=>this.cm.css=e,onFocus:this.editorFocusHandler.bind(this)})),Object(V.h)("div",{"data-code-wrap-id":"2",id:"jsCodeEl","data-type":"js",class:"code-wrap",onTransitionEnd:this.updateCodeWrapCollapseStates.bind(this)},Object(V.h)("div",{class:"js-code-wrap__header code-wrap__header",title:"Double click to toggle code pane",onDblClick:this.codeWrapHeaderDblClickHandler.bind(this)},Object(V.h)("label",{class:"btn-group",title:"Click to change"},Object(V.h)("span",{class:"code-wrap__header-label"},z[this.props.currentItem.jsMode||"js"].label),Ot,Object(V.h)("select",{"data-type":"js",class:"js-mode-select hidden-select",onChange:this.codeModeChangeHandler.bind(this),value:this.props.currentItem.jsMode},Tt,Vt,Pt,Dt)),Object(V.h)("div",{class:"code-wrap__header-right-options"},Object(V.h)("a",{class:"js-code-collapse-btn code-wrap__header-btn code-wrap__collapse-btn",title:"Toggle code pane",onClick:this.collapseBtnHandler.bind(this)}))),Object(V.h)(ct,{options:{mode:"javascript",gutters:["error-gutter","CodeMirror-linenumbers","CodeMirror-foldgutter"]},autoComplete:this.props.prefs.autoComplete,onChange:this.onJsCodeChange.bind(this),onCreation:(e)=>this.cm.js=e,onFocus:this.editorFocusHandler.bind(this)}))),Object(V.h)("div",{class:"demo-side",id:"js-demo-side",style:""},Object(V.h)("iframe",{ref:(e)=>this.frame=e,src:"about://blank",frameborder:"0",id:"demo-frame",allowfullscreen:!0}),Object(V.h)("div",{id:"consoleEl",class:`console ${this.state.isConsoleOpen?"":"is-minimized"}`},Object(V.h)("div",{id:"consoleLogEl",class:"console__log"},Object(V.h)("div",{class:"js-console__header code-wrap__header",title:"Double click to toggle console",onDblClick:this.toggleConsole.bind(this)},Ft,Object(V.h)("div",{class:"code-wrap__header-right-options"},Object(V.h)("a",{class:"code-wrap__header-btn",title:"Clear console (CTRL + L)",onClick:this.clearConsoleBtnClickHandler.bind(this)},Nt),Object(V.h)("a",{class:"code-wrap__header-btn code-wrap__collapse-btn",title:"Toggle console",onClick:this.toggleConsole.bind(this)}))),Object(V.h)(mt,{options:{mode:"javascript",lineWrapping:!0,theme:"monokai",foldGutter:!0,readOnly:!0,gutters:["CodeMirror-foldgutter"]},onCreation:(e)=>this.consoleCm=e})),Object(V.h)("div",{id:"consolePromptEl",class:"console__prompt flex flex-v-center"},Wt,Object(V.h)("input",{onKeyUp:this.evalConsoleExpr.bind(this),class:"console-exec-input"}))),Object(V.h)(yt,{show:this.state.isCssSettingsModalOpen,closeHandler:()=>this.setState({isCssSettingsModalOpen:!1}),onChange:this.cssSettingsChangeHandler.bind(this),settings:this.props.currentItem.cssSettings,editorTheme:this.props.prefs.editorTheme})))}};var Rt=Object(V.h)("svg",{viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"})),Ut=Object(V.h)("svg",{style:"display: none;",xmlns:"http://www.w3.org/2000/svg"},Object(V.h)("symbol",{id:"codepen-logo",viewBox:"0 0 120 120"},Object(V.h)("path",{class:"outer-ring",d:"M60.048 0C26.884 0 0 26.9 0 60.048s26.884 60 60 60.047c33.163 0 60.047-26.883 60.047-60.047 S93.211 0 60 0z M60.048 110.233c-27.673 0-50.186-22.514-50.186-50.186S32.375 9.9 60 9.9 c27.672 0 50.2 22.5 50.2 50.186S87.72 110.2 60 110.233z"}),Object(V.h)("path",{class:"inner-box",d:"M97.147 48.319c-0.007-0.047-0.019-0.092-0.026-0.139c-0.016-0.09-0.032-0.18-0.056-0.268 c-0.014-0.053-0.033-0.104-0.05-0.154c-0.025-0.078-0.051-0.156-0.082-0.232c-0.021-0.053-0.047-0.105-0.071-0.156 c-0.033-0.072-0.068-0.143-0.108-0.211c-0.029-0.051-0.061-0.1-0.091-0.148c-0.043-0.066-0.087-0.131-0.135-0.193 c-0.035-0.047-0.072-0.094-0.109-0.139c-0.051-0.059-0.104-0.117-0.159-0.172c-0.042-0.043-0.083-0.086-0.127-0.125 c-0.059-0.053-0.119-0.104-0.181-0.152c-0.048-0.037-0.095-0.074-0.145-0.109c-0.019-0.012-0.035-0.027-0.053-0.039L61.817 23.5 c-1.072-0.715-2.468-0.715-3.54 0L24.34 46.081c-0.018 0.012-0.034 0.027-0.053 0.039c-0.05 0.035-0.097 0.072-0.144 0.1 c-0.062 0.049-0.123 0.1-0.181 0.152c-0.045 0.039-0.086 0.082-0.128 0.125c-0.056 0.055-0.108 0.113-0.158 0.2 c-0.038 0.045-0.075 0.092-0.11 0.139c-0.047 0.062-0.092 0.127-0.134 0.193c-0.032 0.049-0.062 0.098-0.092 0.1 c-0.039 0.068-0.074 0.139-0.108 0.211c-0.024 0.051-0.05 0.104-0.071 0.156c-0.031 0.076-0.057 0.154-0.082 0.2 c-0.017 0.051-0.035 0.102-0.05 0.154c-0.023 0.088-0.039 0.178-0.056 0.268c-0.008 0.047-0.02 0.092-0.025 0.1 c-0.019 0.137-0.029 0.275-0.029 0.416V71.36c0 0.1 0 0.3 0 0.418c0.006 0 0 0.1 0 0.1 c0.017 0.1 0 0.2 0.1 0.268c0.015 0.1 0 0.1 0.1 0.154c0.025 0.1 0.1 0.2 0.1 0.2 c0.021 0.1 0 0.1 0.1 0.154c0.034 0.1 0.1 0.1 0.1 0.213c0.029 0 0.1 0.1 0.1 0.1 c0.042 0.1 0.1 0.1 0.1 0.193c0.035 0 0.1 0.1 0.1 0.139c0.05 0.1 0.1 0.1 0.2 0.2 c0.042 0 0.1 0.1 0.1 0.125c0.058 0.1 0.1 0.1 0.2 0.152c0.047 0 0.1 0.1 0.1 0.1 c0.019 0 0 0 0.1 0.039L58.277 96.64c0.536 0.4 1.2 0.5 1.8 0.537c0.616 0 1.233-0.18 1.77-0.537 l33.938-22.625c0.018-0.012 0.034-0.027 0.053-0.039c0.05-0.035 0.097-0.072 0.145-0.109c0.062-0.049 0.122-0.1 0.181-0.152 c0.044-0.039 0.085-0.082 0.127-0.125c0.056-0.055 0.108-0.113 0.159-0.172c0.037-0.045 0.074-0.09 0.109-0.139 c0.048-0.062 0.092-0.127 0.135-0.193c0.03-0.049 0.062-0.098 0.091-0.146c0.04-0.07 0.075-0.141 0.108-0.213 c0.024-0.051 0.05-0.102 0.071-0.154c0.031-0.078 0.057-0.156 0.082-0.234c0.017-0.051 0.036-0.102 0.05-0.154 c0.023-0.088 0.04-0.178 0.056-0.268c0.008-0.045 0.02-0.092 0.026-0.137c0.018-0.139 0.028-0.277 0.028-0.418V48.735 C97.176 48.6 97.2 48.5 97.1 48.319z M63.238 32.073l25.001 16.666L77.072 56.21l-13.834-9.254V32.073z M56.856 32.1 v14.883L43.023 56.21l-11.168-7.471L56.856 32.073z M29.301 54.708l7.983 5.34l-7.983 5.34V54.708z M56.856 88.022L31.855 71.4 l11.168-7.469l13.833 9.252V88.022z M60.048 67.597l-11.286-7.549l11.286-7.549l11.285 7.549L60.048 67.597z M63.238 88.022V73.14 l13.834-9.252l11.167 7.469L63.238 88.022z M90.794 65.388l-7.982-5.34l7.982-5.34V65.388z"}))),Kt=Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#codepen-logo"})),qt=Object(V.h)("svg",{style:"width:24px;height:24px",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M4,4H7L9,2H15L17,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9Z"})),Jt=Object(V.h)("div",{class:"footer__separator hide-on-mobile"}),Yt=Object(V.h)("svg",{viewBox:"0 0 100 100",style:"transform:rotate(-90deg)"},Object(V.h)("use",{xlinkHref:"#mode-icon"})),Gt=Object(V.h)("svg",{viewBox:"0 0 100 100"},Object(V.h)("use",{xlinkHref:"#mode-icon"})),Zt=Object(V.h)("svg",{viewBox:"0 0 100 100",style:"transform:rotate(90deg)"},Object(V.h)("use",{xlinkHref:"#mode-icon"})),Xt=Object(V.h)("svg",{viewBox:"0 0 100 100"},Object(V.h)("use",{xlinkHref:"#vertical-mode-icon"})),Qt=Object(V.h)("svg",{viewBox:"0 0 100 100"},Object(V.h)("rect",{x:"0",y:"0",width:"100",height:"100"})),$t=Object(V.h)("svg",{viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M22,17V7H6V17H22M22,5A2,2 0 0,1 24,7V17C24,18.11 23.1,19 22,19H16V21H18V23H10V21H12V19H6C4.89,19 4,18.11 4,17V7A2,2 0 0,1 6,5H22M2,3V15H0V3A2,2 0 0,1 2,1H20V3H2Z"})),en=Object(V.h)("div",{class:"footer__separator"}),tn=Object(V.h)("svg",{viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M14,20A2,2 0 0,1 12,22A2,2 0 0,1 10,20H14M12,2A1,1 0 0,1 13,3V4.08C15.84,4.56 18,7.03 18,10V16L21,19H3L6,16V10C6,7.03 8.16,4.56 11,4.08V3A1,1 0 0,1 12,2Z"})),nn=Object(V.h)("span",{class:"notifications-btn__dot"}),on=Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#settings-icon"})),sn=Object(V.h)("a",{href:"https://webmakerapp.com/",target:"_blank",rel:"noopener noreferrer"},Object(V.h)("div",{class:"logo"})),an=Object(V.h)("span",{class:"web-maker-with-tag"},"Web Maker"),rn=Object(V.h)("svg",{style:"width:20px; height:20px; vertical-align:text-bottom",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z"})),ln=Object(V.h)("use",{xlinkHref:"#keyboard-icon"}),dn=Object(V.h)("use",{xlinkHref:"#twitter-icon"});let cn=class extends V.Component{constructor(e){super(e),this.state={isKeyboardShortcutsModalOpen:!1}}layoutBtnClickhandler(e){this.props.layoutBtnClickHandler(e)}render(){return Object(V.h)("div",{id:"footer",class:"footer"},Object(V.h)("div",{class:"footer__right fr"},Object(V.h)("a",{onClick:this.props.saveHtmlBtnClickHandler,id:"saveHtmlBtn",class:"mode-btn hint--rounded hint--top-left hide-on-mobile","data-hint":"Save as HTML file"},Rt),Ut,Object(V.h)("a",{href:"",onClick:this.props.codepenBtnClickHandler,id:"codepenBtn",class:"mode-btn hint--rounded hint--top-left hide-on-mobile","aria-label":"Edit on CodePen"},Kt),Object(V.h)("a",{href:"",id:"screenshotBtn",class:"mode-btn hint--rounded hint--top-left show-when-extension",onClick:this.props.screenshotBtnClickHandler,"aria-label":"Take screenshot of preview"},qt),Jt,Object(V.h)("a",{onClick:this.layoutBtnClickhandler.bind(this,1),id:"layoutBtn1",class:"mode-btn hide-on-mobile"},Yt),Object(V.h)("a",{onClick:this.layoutBtnClickhandler.bind(this,2),id:"layoutBtn2",class:"mode-btn hide-on-mobile"},Gt),Object(V.h)("a",{onClick:this.layoutBtnClickhandler.bind(this,3),id:"layoutBtn3",class:"mode-btn hide-on-mobile"},Zt),Object(V.h)("a",{onClick:this.layoutBtnClickhandler.bind(this,5),id:"layoutBtn5",class:"mode-btn hide-on-mobile"},Xt),Object(V.h)("a",{onClick:this.layoutBtnClickhandler.bind(this,4),id:"layoutBtn4",class:"mode-btn hint--top-left hint--rounded hide-on-mobile","aria-label":"Full Screen"},Qt),Object(V.h)("a",{class:"mode-btn hint--top-left hint--rounded hide-on-mobile","aria-label":"Detach Preview",onClick:this.props.detachedPreviewBtnHandler},$t),en,Object(V.h)("a",{onClick:this.props.notificationsBtnClickHandler,id:"notificationsBtn",class:`notifications-btn mode-btn hint--top-left hint--rounded ${this.props.hasUnseenChangelog?"has-new":""}`,"aria-label":"Notifications"},tn,nn),Object(V.h)(y,{onClick:this.props.settingsBtnClickHandler,"data-event-category":"ui","data-event-action":"settingsBtnClick",class:"mode-btn hint--top-left hint--rounded","aria-label":"Settings"},on)),sn,"\xA9",an," \xA0\xA0",Object(V.h)(y,{onClick:this.props.helpBtnClickHandler,"data-event-category":"ui","data-event-action":"helpButtonClick",class:"footer__link hint--rounded hint--top-right","aria-label":"Help"},rn),Object(V.h)(y,{onClick:this.props.keyboardShortcutsBtnClickHandler,"data-event-category":"ui","data-event-action":"keyboardShortcutButtonClick",class:"footer__link hint--rounded hint--top-right hide-on-mobile","aria-label":"Keyboard shortcuts"},Object(V.h)("svg",{style:{width:"20px",height:"20px",verticalAlign:"text-bottom"}},ln)),Object(V.h)("a",{class:"footer__link hint--rounded hint--top-right","aria-label":"Tweet about 'Web Maker'",href:"http://twitter.com/share?url=https://webmakerapp.com/&text=Web Maker - A blazing fast %26 offline web playground! via @webmakerApp&related=webmakerApp&hashtags=web,frontend,playground,offline",target:"_blank",rel:"noopener noreferrer"},Object(V.h)("svg",{style:{width:"20px",height:"20px",verticalAlign:"text-bottom"}},dn)),Object(V.h)(y,{onClick:this.props.supportDeveloperBtnClickHandler,"data-event-category":"ui","data-event-action":"supportDeveloperFooterBtnClick",class:"footer__link ml-1 hint--rounded hint--top-right hide-on-mobile","aria-label":"Support the developer by pledging some amount",target:"_blank",rel:"noopener noreferrer"},"Support the developer"))}};var hn=n("gfUn"),pn=n.n(hn);const un={async getItem(e){var t=await window.db.getDb();return t.doc(`items/${e}`).get().then((e)=>e.data())},async getUserItemIds(){if(window.user)return new Promise((e)=>{e(window.user.items||{})});var e=await window.db.getDb();return e.doc(`users/${window.user.uid}`).get().then((e)=>e.exists?e.data().items:{})},async getAllItems(){var e=Date.now(),t=o();let n=await this.getUserItemIds();n=Object.getOwnPropertyNames(n||{}),Object(hn.log)("itemids",n),n.length||t.resolve([]);var s=await window.db.getDb();const i=[];return s.collection("items").where("createdBy","==",window.user.uid).onSnapshot(function(n){n.forEach(function(e){i.push(e.data())}),Object(hn.log)("Items fetched in ",Date.now()-e,"ms"),t.resolve(i)},function(){t.resolve([])}),t.promise},async setUser(){const e=await window.db.getDb();return e.doc(`users/${window.user.uid}`).set({items:{}})},async setItem(e,t){const n=o();var s;if(db.local.set({[e]:t},()=>{!window.IS_EXTENSION&&window.user&&navigator.onLine||n.resolve()}),"code"===e)return!1;if(window.user){var i=await window.db.getDb();Object(hn.log)(`Starting to save item ${e}`),t.createdBy=window.user.uid,s=i.collection("items").doc(e).set(t,{merge:!0}).then((e)=>{Object(hn.log)("Document written",e),n.resolve()}).catch(n.reject)}return window.user&&navigator.onLine?s:n.promise},saveItems(e){var t=o();return window.user?window.db.getDb().then((n)=>{const o=n.batch();for(var s in e)e[s].createdBy=window.user.uid,o.set(n.doc(`items/${s}`),e[s]),o.update(n.doc(`users/${window.user.uid}`),{[`items.${s}`]:!0}),window.user.items=window.user.items||{},window.user.items[s]=!0;o.commit().then(t.resolve)}):(window.db.local.set(e,t.resolve),window.db.local.get({items:{}},function(t){for(var n in e)t.items[n]=!0;window.db.local.set({items:t.items})})),t.promise},async removeItem(e){if(!window.user){var t=o();return window.db.local.remove(e,t.resolve),t.promise}const n=await window.db.getDb();return Object(hn.log)(`Starting to save item ${e}`),n.collection("items").doc(e).delete().then((e)=>{Object(hn.log)("Document removed",e)}).catch((e)=>Object(hn.log)(e))},async setItemForUser(e){if(!window.user)return window.db.local.get({items:{}},function(t){t.items[e]=!0,window.db.local.set({items:t.items})});const t=await window.db.getDb();return t.collection("users").doc(window.user.uid).update({[`items.${e}`]:!0}).then((t)=>{Object(hn.log)(`Item ${e} set for user`,t),window.user.items=window.user.items||{},window.user.items[e]=!0}).catch((e)=>Object(hn.log)(e))},async unsetItemForUser(e){if(!window.user)return window.db.local.get({items:{}},function(t){delete t.items[e],window.db.local.set({items:t.items})});const t=await window.db.getDb();return t.collection("users").doc(window.user.uid).update({[`items.${e}`]:firebase.firestore.FieldValue.delete()}).then((t)=>{delete window.user.items[e],Object(hn.log)(`Item ${e} unset for user`,t)}).catch((e)=>Object(hn.log)(e))}};var mn;const gn={add:function(e){const t=$("#js-alerts-container");t.textContent=e,t.classList.add("is-active"),clearTimeout(mn),mn=setTimeout(function(){t.classList.remove("is-active")},2e3)}};window.alertsService=gn;var fn=Object(V.h)("div",{class:"mt-1"},"No match found."),bn=Object(V.h)("span",{class:"show-when-selected"},"(Ctrl/\u2318 + F)"),vn=Object(V.h)("h2",{class:"opacity--30"},"Nothing saved here.");let Cn=class extends V.Component{constructor(e){super(e),this.items=[],this.state={filteredItems:[]}}componentWillUpdate(e){this.props.items!==e.items&&(this.items=Object.values(e.items),this.items.sort(function(e,t){return t.updatedOn-e.updatedOn}),this.setState({filteredItems:this.items}))}componentDidUpdate(e){this.props.isOpen&&!e.isOpen&&(window.searchInput.value="")}onCloseIntent(){this.props.closeHandler()}itemClickHandler(e){this.props.itemClickHandler(e)}itemRemoveBtnClickHandler(t,n){n.stopPropagation(),this.props.itemRemoveBtnClickHandler(t)}itemForkBtnClickHandler(t,n){n.stopPropagation(),this.props.itemForkBtnClickHandler(t)}keyDownHandler(e){if(this.props.isOpen){const t=e.ctrlKey||e.metaKey,n=t&&70===e.keyCode,o=40===e.keyCode,s=38===e.keyCode,i=13===e.keyCode,a=$(".js-saved-item-tile.selected"),r=0!==$all(".js-saved-item-tile").length;if((o||s)&&r){const e=o?"nextUntil":"previousUntil";a?(a.classList.remove("selected"),a[e](".js-saved-item-tile:not(.hide)").classList.add("selected")):$(".js-saved-item-tile:not(.hide)").classList.add("selected"),$(".js-saved-item-tile.selected").scrollIntoView(!1)}if(i&&a){const e=this.props.items[a.dataset.itemId];console.log("opening",e),this.props.itemClickHandler(e),v("ui","openItemKeyboardShortcut")}if(n){e.preventDefault();const t=this.props.items[a.dataset.itemId];this.props.itemForkBtnClickHandler(t),v("ui","forkKeyboardShortcut")}}}mergeImportedItems(e){var t=[],n={};const s=o(),i={};this.items.forEach((e)=>i[e.id]=e),e.forEach((e)=>{i[e.id]?t.push(e.id):(c("merging",e.id),n[e.id]=e)});var a=e.length-t.length;if(t.length){var r=confirm(t.length+" creations already exist. Do you want to replace them?");r&&(c("shouldreplace",r),e.forEach((e)=>{n[e.id]=e}),a=e.length)}return a?un.saveItems(n).then(()=>{s.resolve(),gn.add(a+" creations imported successfully."),v("fn","itemsImported",a)}):s.resolve(),this.props.closeHandler(),s.promise}importFileChangeHandler(t){var e=t.target.files[0],n=new FileReader;n.addEventListener("load",(e)=>{var t;try{t=JSON.parse(e.target.result),c(t),this.mergeImportedItems(t)}catch(e){c(e),alert("Oops! Selected file is corrupted. Please select a file that was generated by clicking the \"Export\" button.")}}),n.readAsText(e,"utf-8")}importBtnClickHandler(t){var e=document.createElement("input");e.type="file",e.style.display="none",e.accept="accept=\"application/json",document.body.appendChild(e),e.addEventListener("change",this.importFileChangeHandler.bind(this)),e.click(),v("ui","importBtnClicked"),t.preventDefault()}searchInputHandler(t){const e=t.target.value;e?this.setState({filteredItems:this.items.filter((t)=>-1!==t.title.toLowerCase().indexOf(e))}):this.setState({filteredItems:this.items}),v("ui","searchInputType")}render(){return Object(V.h)("div",{id:"js-saved-items-pane",class:`saved-items-pane ${this.props.isOpen?"is-open":""}`,onKeyDown:this.keyDownHandler.bind(this)},Object(V.h)("button",{onClick:this.onCloseIntent.bind(this),class:"btn saved-items-pane__close-btn",id:"js-saved-items-pane-close-btn"},"X"),Object(V.h)("div",{class:"flex flex-v-center",style:"justify-content: space-between;"},Object(V.h)("h3",null,"My Library (",this.items.length,")"),Object(V.h)("div",{class:"main-header__btn-wrap"},Object(V.h)("a",{onClick:this.props.exportBtnClickHandler,href:"",class:"btn btn-icon hint--bottom-left hint--rounded hint--medium","aria-label":"Export all your creations into a single importable file."},"Export"),Object(V.h)("a",{onClick:this.importBtnClickHandler.bind(this),href:"",class:"btn btn-icon hint--bottom-left hint--rounded hint--medium","aria-label":"Only the file that you export through the 'Export' button can be imported."},"Import"))),Object(V.h)("input",{id:"searchInput",class:"search-input",onInput:this.searchInputHandler.bind(this),placeholder:"Search your creations here..."}),Object(V.h)("div",{id:"js-saved-items-wrap",class:"saved-items-pane__container"},!this.state.filteredItems.length&&this.items.length?fn:null,this.state.filteredItems.map((e)=>Object(V.h)("div",{class:"js-saved-item-tile saved-item-tile","data-item-id":e.id,onClick:this.itemClickHandler.bind(this,e)},Object(V.h)("div",{class:"saved-item-tile__btns"},Object(V.h)("a",{class:"js-saved-item-tile__fork-btn saved-item-tile__btn hint--left hint--medium","aria-label":"Creates a duplicate of this creation (Ctrl/\u2318 + F)",onClick:this.itemForkBtnClickHandler.bind(this,e)},"Fork",bn),Object(V.h)("a",{class:"js-saved-item-tile__remove-btn saved-item-tile__btn hint--left","aria-label":"Remove",onClick:this.itemRemoveBtnClickHandler.bind(this,e)},"X")),Object(V.h)("h3",{class:"saved-item-tile__title"},e.title),Object(V.h)("span",{class:"saved-item-tile__meta"},"Last updated: ",d(e.updatedOn)))),this.items.length?null:vn))}};const yn=[{url:"https://code.jquery.com/jquery-3.2.1.min.js",label:"jQuery",type:"js"},{url:"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js",label:"Bootstrap 3",type:"js"},{url:"https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js",label:"Bootstrap 4",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/foundation/6.4.3/js/foundation.min.js",label:"Foundation",type:"js"},{url:"https://semantic-ui.com/dist/semantic.min.js",label:"Semantic UI",type:"js"},{url:"https://ajax.googleapis.com/ajax/libs/angularjs/1.6.5/angular.min.js",label:"Angular",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/react/16.2.0/umd/react.production.min.js",label:"React",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.2.0/umd/react-dom.production.min.js",label:"React DOM",type:"js"},{url:"https://unpkg.com/vue/dist/vue.min.js",label:"Vue.js",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/three.js/89/three.min.js",label:"Three.js",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/d3/4.13.0/d3.min.js",label:"D3",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/p5.min.js",label:"P5.js",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/addons/p5.dom.min.js",label:"P5.js DOM",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/addons/p5.sound.min.js",label:"P5.js Sound",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js",label:"Underscore",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.3/TweenMax.min.js",label:"Greensock TweenMax",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/js/uikit.min.js",label:"UIkit 2",type:"js"},{url:"https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.42/js/uikit.min.js",label:"UIkit 3",type:"js"}],Sn=[{url:"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css",label:"Bootstrap 3",type:"css"},{url:"https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css",label:"Bootstrap 4",type:"css"},{url:"https://cdnjs.cloudflare.com/ajax/libs/foundation/6.4.3/css/foundation.min.css",label:"Foundation",type:"css"},{url:"https://semantic-ui.com/dist/semantic.min.css",label:"Semantic UI",type:"css"},{url:"https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css",label:"Bulma",type:"css"},{url:"https://cdnjs.cloudflare.com/ajax/libs/hint.css/2.5.0/hint.min.css",label:"Hint.css",type:"css"},{url:"https://cdn.jsdelivr.net/npm/tailwindcss/dist/tailwind.min.css",label:"Tailwind.css",type:"css"},{url:"https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/uikit.min.css",label:"UIkit 2",type:"css"},{url:"https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.42/css/uikit.min.css",label:"UIkit 3",type:"css"},{url:"https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css",label:"Animate.css",type:"css"},{url:"https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css",label:"FontAwesome 4",type:"css"},{url:"https://use.fontawesome.com/releases/v5.0.10/css/all.css",label:"FontAwesome 5",type:"css"}];let wn=class extends V.Component{componentDidMount(){this.t=this.wrap.querySelector("input,textarea"),this.filter=this.props.filter,this.selectedCallback=this.props.onSelect,setTimeout(()=>{requestIdleCallback(()=>{document.body.appendChild(this.list),this.list.style.position="fixed"})},100),this.t.addEventListener("input",(t)=>this.onInput(t)),this.t.addEventListener("keydown",(t)=>this.onKeyDown(t)),this.t.addEventListener("blur",(t)=>this.closeSuggestions(t)),this.list.addEventListener("mousedown",(t)=>this.onListMouseDown(t))}componentWillUnmount(){this.t.removeEventListener("input",(t)=>this.onInput(t)),this.t.removeEventListener("keydown",(t)=>this.onKeyDown(t)),this.t.removeEventListener("blur",(t)=>this.closeSuggestions(t)),this.list.removeEventListener("mousedown",(t)=>this.onListMouseDown(t))}get currentLineNumber(){return this.t.value.substr(0,this.t.selectionStart).split("\n").length}get currentLine(){var e=this.currentLineNumber;return this.t.value.split("\n")[e-1]}closeSuggestions(){this.list.classList.remove("is-open"),this.isShowingSuggestions=!1}getList(e){return fetch("https://api.cdnjs.com/libraries?search="+e).then((e)=>e.json().then((e)=>e.results))}replaceCurrentLine(e){var t=this.t.value.split("\n");t.splice(this.currentLineNumber-1,1,e),this.t.value=t.join("\n")}onInput(){var e=this.currentLine;if(e){if(-1!==e.indexOf("/")||e.match(/https*:\/\//))return;clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.loader.style.display="block",this.getList(e).then((e)=>{if(this.loader.style.display="none",!e.length)return void this.closeSuggestions();this.list.innerHTML="",this.filter&&(e=e.filter(this.filter));for(var t=0;t${e[t].name}`;this.isShowingSuggestions=!0,this.textareaBounds||(this.textareaBounds=this.t.getBoundingClientRect(),this.list.style.top=this.textareaBounds.bottom+"px",this.list.style.left=this.textareaBounds.left+"px",this.list.style.width=this.textareaBounds.width+"px"),this.list.classList.add("is-open")})},500)}}onKeyDown(e){var t;this.isShowingSuggestions&&(27===e.keyCode&&(this.closeSuggestions(),e.stopPropagation()),40===e.keyCode&&this.isShowingSuggestions?(t=this.list.querySelector(".selected"),t?(t.classList.remove("selected"),t.nextElementSibling.classList.add("selected")):this.list.querySelector("li:first-child").classList.add("selected"),this.list.querySelector(".selected").scrollIntoView(!1),e.preventDefault()):38===e.keyCode&&this.isShowingSuggestions?(t=this.list.querySelector(".selected"),t?(t.classList.remove("selected"),t.previousElementSibling.classList.add("selected")):this.list.querySelector("li:first-child").classList.add("selected"),this.list.querySelector(".selected").scrollIntoView(!1),e.preventDefault()):13===e.keyCode&&this.isShowingSuggestions&&(t=this.list.querySelector(".selected"),this.selectSuggestion(t.dataset.url),this.closeSuggestions()))}onListMouseDown(e){var t=e.target;t.parentElement.dataset.url&&this.selectSuggestion(t.parentElement.dataset.url)}selectSuggestion(e){this.t.focus(),v("ui","autoSuggestionLibSelected",e),this.selectedCallback?this.selectedCallback.call(null,e):this.replaceCurrentLine(e),this.closeSuggestions()}render(){return Object(V.h)("div",{class:`btn-group ${this.props.fullWidth?"flex-grow":""}`,ref:(e)=>this.wrap=e},this.props.children,Object(V.h)("ul",{ref:(e)=>this.list=e,class:"dropdown__menu autocomplete-dropdown"}),Object(V.h)("div",{ref:(e)=>this.loader=e,class:"loader autocomplete__loader",style:"display:none"}))}};var kn=Object(V.h)("h1",null,"Add Library"),xn=Object(V.h)("svg",{style:"width: 30px; height: 30px;fill:#999"},Object(V.h)("use",{xlinkHref:"#search"})),Mn=Object(V.h)("input",{type:"text",id:"externalLibrarySearchInput",class:"full-width",placeholder:"Type here to search libraries"}),_n=Object(V.h)("div",{class:"tar opacity--70"},Object(V.h)("small",null,"Powered by cdnjs")),Ln=Object(V.h)("option",{value:""},"-------"),In=Object(V.h)("h3",{class:"mb-0"},"JS"),Hn=Object(V.h)("p",{class:"mt-0 help-text"},"Put each library in new line"),An=Object(V.h)("p",{style:"font-size: 0.8em;",class:"show-when-extension opacity--70"},"Note: You can load external scripts from following domains: localhost, https://ajax.googleapis.com, https://code.jquery.com, https://cdnjs.cloudflare.com, https://unpkg.com, https://maxcdn.com, https://cdn77.com, https://maxcdn.bootstrapcdn.com, https://cdn.jsdelivr.net/, https://rawgit.com, https://wzrd.in"),jn=Object(V.h)("h3",{class:"mb-0"},"CSS"),Bn=Object(V.h)("p",{class:"mt-0 help-text"},"Put each library in new line");let En=class extends V.Component{constructor(e){super(e),this.state={css:e.css||"",js:e.js||""}}onSelectChange(t){const e=t.target;if(e.value){const t=e.selectedOptions[0].dataset.type;"js"===t?this.setState({js:`${this.state.js}\n${e.value}`}):this.setState({css:`${this.state.css}\n${e.value}`}),v("ui","addLibrarySelect",e.selectedOptions[0].label),this.props.onChange({js:this.state.js,css:this.state.css}),e.value=""}}textareaBlurHandler(t,e){const n=t?t.target:e,o=n.dataset.lang;"js"===o?this.setState({js:n.value||""}):this.setState({css:n.value||""}),this.props.onChange({js:this.state.js,css:this.state.css})}suggestionSelectHandler(e){const t=e.match(/\.js$/)?window.externalJsTextarea:window.externalCssTextarea;t.value=`${t.value}\n${e}`,window.externalLibrarySearchInput.value="",this.textareaBlurHandler(null,t)}render(){return Object(V.h)("div",null,kn,Object(V.h)("div",{class:"flex"},xn,Object(V.h)(wn,{fullWidth:!0,onSelect:this.suggestionSelectHandler.bind(this)},Mn)),_n,Object(V.h)("div",{style:"margin:20px 0;"},"Choose from popular libraries:"," ",Object(V.h)("select",{name:"",id:"js-add-library-select",onChange:this.onSelectChange.bind(this)},Ln,Object(V.h)("optgroup",{label:"JavaScript Libraries"},yn.map((e)=>Object(V.h)("option",{"data-type":e.type,value:e.url},e.label))),Object(V.h)("optgroup",{label:"CSS Libraries"},Sn.map((e)=>Object(V.h)("option",{"data-type":e.type,value:e.url},e.label))))),In,Hn,An,Object(V.h)("textarea",{onBlur:this.textareaBlurHandler.bind(this),"data-lang":"js",class:"full-width",id:"externalJsTextarea",cols:"30",rows:"5",placeholder:"Put each library in new line",value:this.state.js}),jn,Bn,Object(V.h)("textarea",{onBlur:this.textareaBlurHandler.bind(this),"data-lang":"css",class:"full-width",id:"externalCssTextarea",cols:"30",rows:"5",placeholder:"Put each library in new line",value:this.state.css}))}};var On=n("ZUoI"),Tn=n.n(On);const Vn={logout(){Tn.a.auth().signOut()},login(e){var t;return"facebook"===e?t=new Tn.a.auth.FacebookAuthProvider:"twitter"===e?t=new Tn.a.auth.TwitterAuthProvider:"google"===e?(t=new Tn.a.auth.GoogleAuthProvider,t.addScope("https://www.googleapis.com/auth/userinfo.profile")):t=new Tn.a.auth.GithubAuthProvider,Tn.a.auth().signInWithPopup(t).then(function(){v("fn","loggedIn",e),window.db.local.set({lastAuthProvider:e})}).catch(function(e){c(e),"auth/account-exists-with-different-credential"===e.code&&alert("You have already signed up with the same email using different social login")})}};var Pn=Object(V.h)("h2",null,"Login / Signup"),Dn=Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#github-icon"})),Fn=Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#google-icon"})),Nn=Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#fb-icon"})),Wn=Object(V.h)("p",null,"Join a community of 50,000+ Developers");let zn=class extends V.Component{login(t){const e=t.target.dataset.authProvider;v("ui","loginProviderClick",e),Vn.login(e)}componentDidMount(){window.db.local.get({lastAuthProvider:""},(e)=>{e.lastAuthProvider&&document.body.classList.add(`last-login-${e.lastAuthProvider}`)})}render(){return Object(V.h)("div",null,Pn,Object(V.h)("div",null,Object(V.h)("p",null,Object(V.h)("button",{type:"button",onClick:this.login.bind(this),class:"social-login-btn social-login-btn--github btn btn-icon btn--big full-width hint--right hint--always","data-auth-provider":"github","data-hint":"You logged in with Github last time"},Dn,"Login with Github")),Object(V.h)("p",null,Object(V.h)("button",{type:"button",onClick:this.login.bind(this),class:"social-login-btn social-login-btn--google btn btn-icon btn--big full-width hint--right hint--always","data-auth-provider":"google","data-hint":"You logged in with Google last time"},Fn,"Login with Google")),Object(V.h)("p",{class:"mb-2"},Object(V.h)("button",{type:"button",onClick:this.login.bind(this),class:"social-login-btn social-login-btn--facebook btn btn-icon btn--big full-width hint--right hint--always","data-auth-provider":"facebook","data-hint":"You logged in with Facebook last time"},Nn,"Login with Facebook")),Wn))}};Tn.a.initializeApp({apiKey:"AIzaSyBl8Dz7ZOE7aP75mipYl2zKdLSRzBU2fFc",authDomain:"web-maker-app.firebaseapp.com",databaseURL:"https://web-maker-app.firebaseio.com",projectId:"web-maker-app",storageBucket:"web-maker-app.appspot.com",messagingSenderId:"560473480645"});var Rn=n("7vHL"),Un=Object.assign||function(e){for(var t,n=1;n{async function e(){return s?s:(c("Initializing firestore"),s=new Promise((e,t)=>n?e(n):Tn.a.firestore().enablePersistence().then(function(){n=Tn.a.firestore(),c("firebase db ready",n),e(n)}).catch(function(e){t(e.code),"failed-precondition"===e.code?(alert("Opening Web Maker web app in multiple tabs isn't supported at present and it seems like you already have it opened in another tab. Please use in one tab."),v("fn","multiTabError")):"unimplemented"===e.code})),s)}const t=1;var n,s,i={get:(e,n)=>{const o={};"string"==typeof e?(o[e]=JSON.parse(window.localStorage.getItem(e)),setTimeout(()=>n(o),t)):(Object.keys(e).forEach((t)=>{const n=window.localStorage.getItem(t);o[t]=void 0===n||null===n?e[t]:JSON.parse(n)}),setTimeout(()=>n(o),t))},set:(e,n)=>{Object.keys(e).forEach((t)=>{window.localStorage.setItem(t,JSON.stringify(e[t]))}),setTimeout(()=>{if(n)return n()},t)},remove:(e,n)=>{window.localStorage.removeItem(e),setTimeout(()=>n(),t)}};const a=chrome&&chrome.storage?chrome.storage.local:i,r=chrome&&chrome.storage?chrome.storage.sync:i;window.db={getDb:e,getUser:async function(t){const n=await e();return n.doc(`users/${t}`).get().then((e)=>{if(!e.exists)return n.doc(`users/${t}`).set({},{merge:!0});const o=e.data();return Un(window.user,o),o})},getUserLastSeenVersion:async function(){const e=o();return r.get({lastSeenVersion:""},(t)=>{e.resolve(t.lastSeenVersion)}),e.promise},setUserLastSeenVersion:async function(t){if(r.set({lastSeenVersion:t},function(){}),window.user){const n=await e();n.doc(`users/${window.user.uid}`).update({lastSeenVersion:t})}},getSettings:function(e){const t=o();return r.get(e,(e)=>{t.resolve(e)}),t.promise},local:a,sync:r}})();var Kn=Object(V.h)("h1",null,"Whats new?"),qn=Object(V.h)("span",{class:"notification__version"},"3.2.0"),Jn=Object(V.h)("li",null,Object(V.h)("strong",null,"\uD83D\uDE80 Loop timeout setting"),": You now have a setting to tweak the maximum timeout of a loop iteration before it's marked as infinite loop."),Yn=Object(V.h)("li",null,Object(V.h)("strong",null,"\u267F\uFE0F Accessibility"),": Modals now have proper keyboard navigation integrated."),Gn=Object(V.h)("li",null,Object(V.h)("strong",null,"\u267F\uFE0F Accessibility"),": Color contrast improvements."),Zn=Object(V.h)("li",null,"\uD83D\uDE80 Popular libraries list updated. Thanks",Object(V.h)("a",{href:"https://github.com/diomed",target:"_blank"},"@diomed")," ","&"," ",Object(V.h)("a",{href:"https://github.com/leninalbertolp",target:"_blank"},"@leninalbertolp")),Xn=Object(V.h)("li",null,Object(V.h)("strong",null,"\uD83D\uDD27 Bugfix"),": Modal take up appropriate width instead of spanning full width."),Qn=Object(V.h)("br",null),$n=Object(V.h)("li",null,Object(V.h)("strong",null,"\uD83D\uDE80 Announcement"),": Hi! I am Kushagra Gour (creator of Web Maker) and I have launched a",Object(V.h)("a",{href:"https://patreon.com/kushagra",target:"_blank"},"Patreon campaign"),". If you love Web Maker, consider pledging to",Object(V.h)("a",{href:"https://patreon.com/kushagra",target:"_blank"},"support me")," ",":)"),eo=Object(V.h)("li",null,Object(V.h)("a",{href:"https://github.com/chinchang/web-maker/issues",target:"_blank"},"Suggest features or report bugs.")),to=Object(V.h)("a",{href:"https://chrome.google.com/webstore/detail/web-maker/lkfkkhfhhdkiemehlpkgjeojomhpccnh/reviews",target:"_blank",class:"btn"},"Please rate Web Maker ",Object(V.h)("span",{class:"star"})),no=Object(V.h)("a",{href:"http://twitter.com/share?url=https://webmakerapp.com/&text=Web Maker - A blazing fast %26 offline web playground! via @webmakerApp&related=webmakerApp&hashtags=web,editor,chrome,extension",target:"_blank",target:"_blank",class:"btn"},"Share it"),oo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"3.1.1"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),": Fix the \"Run\" button not refreshing the preview after release 3.0.4."))),so=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"3.1.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Mobile Support (app only)."),": Make the Web Maker app usable on mobile. This is only for web app as Chrome extensions don't run on mobile."))),io=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"3.0.4"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),": Guarantee code doesn't execute when \"auto preview\" is off."),Object(V.h)("li",null,"Add link to our new",Object(V.h)("a",{href:"https://web-maker.slack.com",target:"_blank",rel:"noopener noreferrer"},"Slack channel")," ","\uD83E\uDD17."))),ao=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"3.0.3"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix (extension)"),": \"Save as HTML\" file saves with correct extension."))),ro=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"3.0.1"),Object(V.h)("ul",null,Object(V.h)("li",null,"After months of work, here is Web Maker 3.0.",Object(V.h)("a",{href:"https://medium.com/web-maker/web-maker-3-0-is-here-f158a40eeaee",target:"_blank",rel:"noopener noreferrer"},"Read the blog post about it"),"."),Object(V.h)("li",null,"Web Maker is no more just a Chrome extension, it is also available as web app that runs offline just like the extension! Checkout it out ->",Object(V.h)("a",{href:"https://webmakerapp.com/app/",target:"_blank",rel:"noopener noreferrer"},"https://webmakerapp.com/app/"),"."),Object(V.h)("li",null,"Now use Web Maker web app on any modern browser (tested with Chrome and Firefox)."),Object(V.h)("li",null,Object(V.h)("strong",null,"User Accounts")," - The much requested user accounts are here. Now maintain your account and store all your creations in the cloud and access them anywhere anytime."),Object(V.h)("li",null,Object(V.h)("strong",null,"New layout mode")," - One more layout mode, that lets you align all the panes vertically."),Object(V.h)("li",null,Object(V.h)("strong",null,"No more restriction on scripts (Web app only)")," - If you are using the web app, there is no more a restriction to load scripts from only specific domains. Load any script!"),Object(V.h)("li",null,Object(V.h)("strong",null,"Inline scripts (Web app only)")," - The restriction of writing JavaScript only in JS pane is also removed."))),lo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.9.7"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("a",{href:"https://tailwindcss.com/",target:"_blank",rel:"noopener noreferrer"},"Tailwind CSS")," ","added to popular CSS libraries list. Thanks",Object(V.h)("a",{href:"https://github.com/diomed",target:"_blank",rel:"noopener noreferrer"},"diomed"),"."),Object(V.h)("li",null,"Popular libraries list updated. Thanks",Object(V.h)("a",{href:"https://github.com/diomed",target:"_blank",rel:"noopener noreferrer"},"diomed"),"."),Object(V.h)("li",null,Object(V.h)("strong",null,"Dev"),": Bug fixes and code refactoring to make things simple. Thanks",Object(V.h)("a",{href:"https://github.com/iamandrewluca",target:"_blank",rel:"noopener noreferrer"},"iamandrewluca"),"."))),co=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.9.6"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),": Fix close buttons not working in notifications and keyboard shortcuts modal."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),": Fix keyboard shortcut to see keyboard shortcuts :) Thanks",Object(V.h)("a",{href:"https://github.com/ClassicOldSong",target:"_blank",rel:"noopener noreferrer"},"ClassicOldSong"),"."))),ho=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.9.5"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("a",{href:"https://medium.com/web-maker/release-2-9-5-add-library-search-pane-collapsing-ux-improvements-more-1085216c1301",target:"_blank",rel:"noopener noreferrer"},"Read blog post about this release.")),Object(V.h)("li",null,Object(V.h)("strong",null,"Keyboard shortcuts panel"),": Add a list of all keyboard shotcuts. Access with",Object(V.h)("code",null," Ctrl/\u2318 + Shift + ?")," or click keyboard button in footer."),Object(V.h)("li",null,Object(V.h)("strong",null,"Add external library"),": Better UX for searching third party libraries."),Object(V.h)("li",null,Object(V.h)("strong",null,"Improvement"),": Code panes now go fullscreen when double-clicked on their headers - which is much more intuitive behavior based on feedback from lot of developers."),Object(V.h)("li",null,Object(V.h)("strong",null,"Improvement"),": Add",Object(V.h)("code",null,"allowfullscreen")," attribute on iframes. Thanks",Object(V.h)("a",{href:"https://github.com/ClassicOldSong",target:"_blank",rel:"noopener noreferrer"},"ClassicOldSong"),"."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Stop screenlog.js from showing up in the exported HTML."),Object(V.h)("li",null,"Popular external libraries list updated. Thanks",Object(V.h)("a",{href:"https://github.com/jlapitan",target:"_blank",rel:"noopener noreferrer"},"jlapitan"),"."))),po=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.9.4"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Improvement"),": Atomic CSS (Atomizer) has been updated to latest version. Now you can do things like psuedo elements. Learn More."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Logging circular objects is now possible. It won't show in the Web Maker console, but will show fine in browser's console."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Console's z-index issue has been fixed."))),uo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.9.3"),Object(V.h)("ul",null,Object(V.h)("li",null,"Choose the save location while exporting your saved creations. Now easily sync them to your Dropbox or any cloud storage."),Object(V.h)("li",null,"All modals inside the app now have a close button."),Object(V.h)("li",null,"Checkbox that showed on clicking a boolean value is now removed. Thanks",Object(V.h)("a",{href:"https://github.com/gauravmuk",target:"_blank",rel:"noopener noreferrer"},"Gaurav Nanda"),"."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Screenshots on retina device are now correct. Thanks",Object(V.h)("a",{href:"https://github.com/AshBardhan",target:"_blank",rel:"noopener noreferrer"},"Ashish Bardhan"),"."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Double console log in detached mode fixed."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Console.clear now works in detached mode too."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - DOCTYPE added in preview."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Typo correction in README. Thanks",Object(V.h)("a",{href:"https://github.com/AdilMah",target:"_blank",rel:"noopener noreferrer"},"Adil Mahmood"),"."),Object(V.h)("li",null,"gstatic.com is available to load external JavaScripts from."),Object(V.h)("li",null,"Popular libraries list updated. Thanks",Object(V.h)("a",{href:"https://github.com/diomed",target:"_blank",rel:"noopener noreferrer"},"diomed"),"."),Object(V.h)("li",null,"Added",Object(V.h)("a",{href:"https://github.com/chinchang/web-maker/blob/master/CONTRIBUTING.md",target:"_blank",rel:"noopener noreferrer"},"contribution guidelines")," ","in the Github repository."))),mo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.9.2"),Object(V.h)("ul",null,Object(V.h)("li",null,"Minor bug fixes."))),go=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.9.1"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("a",{href:"https://medium.com/web-maker/v2-9-lots-of-goodies-bd1e939571f6",target:"_blank",rel:"noopener noreferrer"},"Read blog post about last release.")),Object(V.h)("li",null,"Use Ctrl/Cmd+D to select next occurence of matching selection."),Object(V.h)("li",null,"Improve onboard experience."))),fo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.9.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("a",{href:"https://medium.com/web-maker/v2-9-lots-of-goodies-bd1e939571f6",target:"_blank",rel:"noopener noreferrer"},"Read blog post about this release.")),Object(V.h)("li",null,Object(V.h)("strong",null,"Detached Preview")," - Yes, you read that correct! You can now detach your preview and send it to your secondary monitor."),Object(V.h)("li",null,Object(V.h)("strong",null,"Find & Replace")," - Long awaited, now its there. Ctrl/Cmd+f to find and add Alt to replace."),Object(V.h)("li",null,Object(V.h)("strong",null,"Atomic CSS (Atomizer) configurations")," - Add custom config for Atomic CSS.",Object(V.h)("a",{href:"https://github.com/acss-io/atomizer#api",target:"_blank",rel:"noopener noreferrer"},"Read more"),"."),Object(V.h)("li",null,Object(V.h)("strong",null,"Light mode")," - This new setting makes Web Maker drop some heavy effects like blur etc to gain more performance. Thanks",Object(V.h)("a",{href:"https://github.com/iamandrewluca",target:"_blank",rel:"noopener noreferrer"},"Andrew"),"."),Object(V.h)("li",null,Object(V.h)("strong",null,"Preserve logs setting")," - Choose whether or not to preserve logs across preview refreshes. Thanks",Object(V.h)("a",{href:"https://github.com/BasitAli",target:"_blank",rel:"noopener noreferrer"},"Basit"),"."),Object(V.h)("li",null,Object(V.h)("strong",null,"Line wrap setting")," - As the name says."),Object(V.h)("li",null,"Semantic UI added to popular libraries."),Object(V.h)("li",null,"Bootstrap, Vue, UI-Kit and more updated to latest versions in popular libraries."),Object(V.h)("li",null,"UX improvements in settings UI"),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Trigger preview refresh anytime with Ctrl/\u2318 + Shift + 5. Even with auto-preview on."))),bo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.8.1"),Object(V.h)("ul",null,Object(V.h)("li",null,"Vue.js & UIKit version updated to latest version in 'Add Library' list."),Object(V.h)("li",null,"UTF-8 charset added to preview HTML to support universal characters."))),vo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.8.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("a",{href:"https://medium.com/web-maker/release-v2-8-is-out-f44e6ea5d9c4",target:"_blank",rel:"noopener noreferrer"},"Read blog post about this release.")),Object(V.h)("li",null,Object(V.h)("strong",null,"Auto Save")," - Your creations now auto-save after your first manual save. This is configurable from settings."),Object(V.h)("li",null,Object(V.h)("strong",null,"Base2Tone-Meadow Editor Theme")," - First user contributed theme. Thanks to Diomed."),Object(V.h)("li",null,Object(V.h)("strong",null,"Use System Fonts")," - You can now use any of your existing system fonts in the editor!"),Object(V.h)("li",null,Object(V.h)("strong",null,"Matching Tag Highlight")," - Cursor over any HTML tag would highlight the matching pair tag."),Object(V.h)("li",null,"Auto-completion suggestion can now be switched off from settings."),Object(V.h)("li",null,Object(V.h)("strong",null,"Improvement")," - Stop white flicker in editor when the app opens."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Add Babel Polyfill to enable use of next-gen built-ins like Promise or WeakMap."),Object(V.h)("li",null,"Vue.js version updated to 2.4.0 in popular library list."),Object(V.h)("li",null,"Downloads permission is optional. Asked only when you take screenshot."))),Co=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.7.2"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"External Libraries")," - Add Foundation.js and update UIKit 3 to latest beta."),Object(V.h)("li",null,Object(V.h)("strong",null,"rawgit.com")," &",Object(V.h)("strong",null,"wzrd.in")," domains are now allowed for loading external libraries from."),Object(V.h)("li",null,"Minor booting speed improvements"))),yo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.7.1"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Framer.js support")," - You can now load the latest framer.js library from",Object(V.h)("a",{href:"https://builds.framerjs.com/",target:"_blank",rel:"noopener noreferrer"},"framer builds page")," ","and start coding framer prototypes."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),": Edit on CodePen is back in action."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),": Autocompletion menu doesn't show on cut and paste now."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),": Updated & fixed urls of some common external libraries to latest versions. UIKit3 & Bootstrap 4\u03B1 are now in the list."),Object(V.h)("li",null,"Preprocessor selector are now more accessible."))),So=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.7.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Fork any creation!"),": Now you can fork any existing creation of yours to start a new work based on it. One big use case of this feature is \"Templates\"!",Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://kushagragour.in/blog/2017/05/web-maker-fork-templates/?utm_source=webmakerapp&utm_medium=referral"},"Read more about it"),"."),Object(V.h)("li",null,Object(V.h)("strong",null,"Fonts \uD83D\uDE0D "),": Super-awesome 4 fonts (mostly with ligature support) now available to choose from. Fira Code is the default font now."),Object(V.h)("li",null,"Updated most used external libraries to latest versions."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),": Add missing Bootstrap JS file to most used external libraries list."),Object(V.h)("li",null,"Several other minor bugfixes and improvements to make Web Maker awesome!"),Object(V.h)("li",null,"Great news to share with you - Web Maker has been featured on the Chrome Webstore homepage! Thanks for all the love :)"))),wo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.6.1"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),": Emojis vanishing while exporting to Codepen has been fixed."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),":",Object(V.h)("code",null,"console.clear()")," now doesn't error and clears the inbuilt console."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix"),": External libraries added to the creation are exported as well to Codepen."))),ko=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.6.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"The \"Console\""),": The most awaited feature is here! There is now an inbuilt console to see your logs, errors and for quickly evaluating JavaScript code inside your preview. Enjoy! I also a",Object(V.h)("a",{href:"https://kushagragour.in/blog/2017/05/web-maker-console-is-here/?utm_source=webmakerapp&utm_medium=referral",target:"_blank",rel:"noopener noreferrer"},"blog post about it"),"."),Object(V.h)("li",null,"Number slider which popped on clicking any number in the code has been removed due to poor user experience."),Object(V.h)("li",null,"Minor usability improvements."))),xo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.5.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Atomic CSS"),": Use can now use Atomic CSS(ACSS) in your work!",Object(V.h)("a",{href:"https://acss.io/",target:"_blank",rel:"noopener noreferrer"},"Read more about it here"),"."),Object(V.h)("li",null,Object(V.h)("strong",null,"Search your saved creations"),": Easily search through all your saved creations by title."),Object(V.h)("li",null,Object(V.h)("strong",null,"Configurable Auto-preview")," - You can turn off the auto preview in settings if you don't want the preview to update as you type."),Object(V.h)("li",null,Object(V.h)("strong",null,"Configurable refresh on resize")," - You can configure whether you want the preview to refresh when you resize the preview panel."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Fix indentation",Object(V.h)("a",{href:"https://github.com/chinchang/web-maker/issues/104",target:"_blank",rel:"noopener noreferrer"},"issue")," ","with custom indentation size."))),Mo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.4.2"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Improved infinite loop protection"),": Infinite loop protection is now faster and more reliable. And works without the need of Escodegen. Thanks to Ariya Hidayat!"),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Default parameters not working in JavaScript is fixed."))),_o=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.4.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Import/Export"),": Your creations are most important. Now export all your creations into a single file as a backup that can be imported anytime & anywhere."),Object(V.h)("li",null,Object(V.h)("strong",null,"Editor themes"),": You have been heard. Now you can choose from a huge list of wonderful editor themes!"),Object(V.h)("li",null,Object(V.h)("strong",null,"Identation settings"),": Not a spaces fan? Switch to tabs and set your indentation size."),Object(V.h)("li",null,Object(V.h)("strong",null,"Vim key bindings"),": Rejoice Vim lovers!"),Object(V.h)("li",null,Object(V.h)("strong",null,"Code blast"),": Why don't you try coding with this switched on from the settings? Go on..."),Object(V.h)("li",null,Object(V.h)("strong",null,"Important"),": Due to security policy changes from Chrome 57 onwards, Web Maker now allows loading external JavaScript libraries only from certain whitelisted domains (localhost, https://ajax.googleapis.com, https://code.jquery.com, https://cdnjs.cloudflare.com, https://unpkg.com, https://maxcdn.com, https://cdn77.com, https://maxcdn.bootstrapcdn.com, https://cdn.jsdelivr.net/)"),Object(V.h)("li",null,"Save button now highlights when you have unsaved changes."),Object(V.h)("li",null,"Jade is now called Pug. Just a name change."))),Lo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.3.2"),Object(V.h)("ul",null,Object(V.h)("li",null,"Update Babel to support latest and coolest ES6 features."),Object(V.h)("li",null,"Improve onboarding experience at first install."))),Io=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.3.1"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Splitting of code and preview panes is remembered by the editor."),Object(V.h)("li",null,"Title of the creation is used for the file name when saving as HTML."))),Ho=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.3.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Add Library Autocompletion")," - Just start typing the name of library and you'll be shown matching libraries from cdnjs."),Object(V.h)("li",null,Object(V.h)("strong",null,"Preview Screenshot Capture")," - Want to grab a nice screenshot of your creation. You have it! Click and capture."),Object(V.h)("li",null,Object(V.h)("strong",null,"Auto Indent Code")," - Select your code and hit Shift-Tab to auto-indent it!"),Object(V.h)("li",null,Object(V.h)("strong",null,"Keyboard Navigation in Saved List")," - Now select your creation using arrow keys and hit ENTER to open it."),Object(V.h)("li",null,"Highlight active line in code panes."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Fix in generated title of new creation."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - HTML autocompletion is manual triggered now with Ctrl+Space."))),Ao=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.2.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Code Autocompletion")," - See code suggestions while you type!"),Object(V.h)("li",null,Object(V.h)("strong",null,"Full Screen Preview")," - Checkout your creation in a full-screen layout."),Object(V.h)("li",null,Object(V.h)("strong",null,"SASS")," - SASS support added for CSS."),Object(V.h)("li",null,Object(V.h)("strong",null,"Faster CSS update")," - Preview updates instantly without refresh when just CSS is changed."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Indentation fixed while going on new line."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Works even in Chrome Canary now. Though libraries can be added only through CDNs."))),jo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.1.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"TypeScript")," - Now you can code in TypeScript too!"),Object(V.h)("li",null,Object(V.h)("strong",null,"Stylus Preprocessor")," - Stylus supported adding for CSS."),Object(V.h)("li",null,Object(V.h)("strong",null,"Code Folding")," - Collapse large code blocks for easy editing."),Object(V.h)("li",null,Object(V.h)("strong",null,"Bugfix")," - Support JSX in JavaScript."),Object(V.h)("li",null,"Better onboarding for first time users."))),Bo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"2.0.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Save and Load")," - Long pending and super-useful, now you can save your creations and resume them anytime later."),Object(V.h)("li",null,Object(V.h)("strong",null,"Insert JS & CSS")," - Load popular JavaScript & CSS libraries in your work without writing any code."),Object(V.h)("li",null,Object(V.h)("strong",null,"Collapsed Panes")," - Collapse/uncollapse code panes with a single click. Your pane configuration is even saved with every creation!"),Object(V.h)("li",null,Object(V.h)("strong",null,"Quick color & number change")," - Click on any color or number and experiment with quick values using a slider."),Object(V.h)("li",null,Object(V.h)("strong",null,"Linting")," - See your code errors right where you are coding."),Object(V.h)("li",null,"No more browser hang due to infinite loops!"))),Eo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"1.7.0"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("strong",null,"Preprocessors!")," - Enjoy a whole list of preprocessors for HTML(Jade & markdown), CSS(SCSS & LESS) and JavaScript(CoffeeScript & Babel)."),Object(V.h)("li",null,"More awesome font for code."))),Oo=Object(V.h)("div",{class:"notification"},Object(V.h)("span",{class:"notification__version"},"1.6.0"),Object(V.h)("ul",null,Object(V.h)("li",null,"You can now configure Web-Maker to not replace new tab page from the settings. It is always accessible from the icon in the top-right."),Object(V.h)("li",null,"Download current code as HTML file with Ctrl/\u2318 + S keyboard shortcut."),Object(V.h)("li",null,"New notifications panel added so you are always aware of the new changes in Web-Maker.")));const To=["3024-day","3024-night","abcdef","ambiance","base2tone-meadow-dark","base16-dark","base16-light","bespin","blackboard","cobalt","colorforth","dracula","duotone-dark","duotone-light","eclipse","elegant","erlang-dark","hopscotch","icecoder","isotope","lesser-dark","liquibyte","material","mbo","mdn-like","midnight","monokai","neat","neo","night","panda-syntax","paraiso-dark","paraiso-light","pastel-on-dark","railscasts","rubyblue","seti","solarized dark","solarized light","the-matrix","tomorrow-night-bright","tomorrow-night-eighties","ttcn","twilight","vibrant-ink","xq-dark","xq-light","yeti","zenburn"];var Vo=Object(V.h)("h1",null,"Settings"),Po=Object(V.h)("h3",null,"Indentation"),Do=Object(V.h)("datalist",{id:"indentationSizeList"},Object(V.h)("option",null,"1"),Object(V.h)("option",null,"2"),Object(V.h)("option",null,"3"),Object(V.h)("option",null,"4"),Object(V.h)("option",null,"5"),Object(V.h)("option",null,"6"),Object(V.h)("option",null,"7")),Fo=Object(V.h)("hr",null),No=Object(V.h)("h3",null,"Editor"),Wo=Object(V.h)("label",{class:"line"},"Default Preprocessors"),zo=Object(V.h)("option",{value:"html"},"HTML"),Ro=Object(V.h)("option",{value:"markdown"},"Markdown"),Uo=Object(V.h)("option",{value:"jade"},"Pug"),Ko=Object(V.h)("option",{value:"css"},"CSS"),qo=Object(V.h)("option",{value:"scss"},"SCSS"),Jo=Object(V.h)("option",{value:"sass"},"SASS"),Yo=Object(V.h)("option",{value:"less"},"LESS"),Go=Object(V.h)("option",{value:"stylus"},"Stylus"),Zo=Object(V.h)("option",{value:"acss"},"Atomic CSS"),Xo=Object(V.h)("option",{value:"js"},"JS"),Qo=Object(V.h)("option",{value:"coffee"},"CoffeeScript"),$o=Object(V.h)("option",{value:"es6"},"ES6 (Babel)"),es=Object(V.h)("option",{value:"typescript"},"TypeScript"),ns=Object(V.h)("option",{value:"FiraCode"},"Fira Code"),os=Object(V.h)("option",{value:"Inconsolata"},"Inconsolata"),ss=Object(V.h)("option",{value:"Monoid"},"Monoid"),is=Object(V.h)("option",{value:"FixedSys"},"FixedSys"),as=Object(V.h)("option",{disabled:"disabled"},"----"),rs=Object(V.h)("option",{value:"other"},"Other font from system"),ls=Object(V.h)("hr",null),ds=Object(V.h)("h3",null,"Fun"),cs=Object(V.h)("hr",null),hs=Object(V.h)("h3",null,"Advanced"),ps=Object(V.h)("div",{class:"help-text"},"If any loop iteration takes more than the defined time, it is detected as a potential infinite loop and further iterations are stopped.");let us=class extends V.Component{updateSetting(t){this.props.onChange(t)}shouldComponentUpdate(){return!0}render(){return Object(V.h)("div",null,Vo,Po,Object(V.h)("div",{class:"line",title:"I know this is tough, but you have to decide one!"},Object(V.h)("label",null,Object(V.h)("input",{type:"radio",name:"indentation",value:"spaces",checked:"spaces"===this.props.prefs.indentation,onChange:this.updateSetting.bind(this),"data-setting":"indentWith"})," ","Spaces"),Object(V.h)("label",{class:"ml-1"},Object(V.h)("input",{type:"radio",name:"indentation",value:"tabs",checked:"tabs"===this.props.prefs.indentation,onChange:this.updateSetting.bind(this),"data-setting":"indentWith"})," ","Tabs")),Object(V.h)("label",{class:"line",title:""},"Indentation Size"," ",Object(V.h)("input",{type:"range",class:"va-m ml-1",value:this.props.prefs.indentSize,min:"1",max:"7",list:"indentationSizeList","data-setting":"indentSize",onChange:this.updateSetting.bind(this)}),Object(V.h)("span",{id:"indentationSizeValueEl"},this.props.prefs.indentSize),Do),Fo,No,Object(V.h)("div",{class:"flex block--mobile"},Object(V.h)("div",null,Wo,Object(V.h)("div",{class:"flex line"},Object(V.h)("select",{style:"flex:1;margin-left:20px","data-setting":"htmlMode",value:this.props.prefs.htmlMode,onChange:this.updateSetting.bind(this)},zo,Ro,Uo),Object(V.h)("select",{style:"flex:1;margin-left:20px","data-setting":"cssMode",value:this.props.prefs.cssMode,onChange:this.updateSetting.bind(this)},Ko,qo,Jo,Yo,Go,Zo),Object(V.h)("select",{style:"flex:1;margin-left:20px","data-setting":"jsMode",value:this.props.prefs.jsMode,onChange:this.updateSetting.bind(this)},Xo,Qo,$o,es)),Object(V.h)("label",{class:"line"},"Theme",Object(V.h)("select",{style:"flex:1;margin:0 20px","data-setting":"editorTheme",value:this.props.prefs.editorTheme,onChange:this.updateSetting.bind(this)},To.map((e)=>Object(V.h)("option",{value:e},e)))),Object(V.h)("label",{class:"line"},"Font",Object(V.h)("select",{style:"flex:1;margin:0 20px","data-setting":"editorFont",value:this.props.prefs.editorFont,onChange:this.updateSetting.bind(this)},ns,os,ss,is,as,rs),"other"===this.props.prefs.editorFont&&Object(V.h)("input",{id:"customEditorFontInput",type:"text",value:this.props.prefs.editorCustomFont,placeholder:"Custom font name here","data-setting":"editorCustomFont",onChange:this.updateSetting.bind(this)})),Object(V.h)("label",{class:"line"},"Font Size"," ",Object(V.h)("input",{style:"width:70px",type:"number",value:this.props.prefs.fontSize,"data-setting":"fontSize",onChange:this.updateSetting.bind(this)})," ","px"),Object(V.h)("div",{class:"line"},"Key bindings",Object(V.h)("label",{class:"ml-1"},Object(V.h)("input",{type:"radio",name:"keymap",value:"sublime",checked:"sublime"===this.props.prefs.keymap,"data-setting":"keymap",onChange:this.updateSetting.bind(this)})," ","Sublime"),Object(V.h)("label",{class:"ml-1"},Object(V.h)("input",{type:"radio",name:"keymap",value:"vim",checked:"vim"===this.props.prefs.keymap,"data-setting":"keymap",onChange:this.updateSetting.bind(this)})," ","Vim"))),Object(V.h)("div",{class:"ml-2 ml-0--mobile"},Object(V.h)(L,{name:"lineWrap",title:"Toggle wrapping of long sentences onto new line",label:"Line wrap",pref:this.props.prefs.lineWrap,onChange:this.updateSetting.bind(this)}),Object(V.h)(L,{name:"refreshOnResize",title:"Your Preview will refresh when you resize the preview split",label:"Refresh preview on resize",pref:this.props.prefs.refreshOnResize,onChange:this.updateSetting.bind(this)}),Object(V.h)(L,{name:"autoComplete",title:"Turns on the auto-completion suggestions as you type",label:"Auto-complete suggestions",pref:this.props.prefs.autoComplete,onChange:this.updateSetting.bind(this)}),Object(V.h)(L,{name:"autoPreview",title:"Refreshes the preview as you code. Otherwise use the Run button",label:"Auto-preview",pref:this.props.prefs.autoPreview,onChange:this.updateSetting.bind(this)}),Object(V.h)(L,{name:"autoSave",title:"Auto-save keeps saving your code at regular intervals after you hit the first save manually",label:"Auto-save",pref:this.props.prefs.autoSave,onChange:this.updateSetting.bind(this)}),Object(V.h)(L,{name:"preserveLastCode",title:"Loads the last open creation when app starts",label:"Preserve last written code",pref:this.props.prefs.preserveLastCode,onChange:this.updateSetting.bind(this)}),Object(V.h)(L,{name:"replaceNewTab",title:"Turning this on will start showing Web Maker in every new tab you open",label:"Replace new tab page",pref:this.props.prefs.replaceNewTab,onChange:this.updateSetting.bind(this),showWhenExtension:!0}),Object(V.h)(L,{name:"preserveConsoleLogs",title:"Preserves the console logs across your preview refreshes",label:"Preserve console logs",pref:this.props.prefs.preserveConsoleLogs,onChange:this.updateSetting.bind(this)}),Object(V.h)(L,{name:"lightVersion",title:"Switch to lighter version for better performance. Removes things like blur etc.",label:"Fast/light version",pref:this.props.prefs.lightVersion,onChange:this.updateSetting.bind(this)}))),ls,ds,Object(V.h)("p",null,Object(V.h)(L,{title:"Enjoy wonderful particle blasts while you type",label:"Code blast!",name:"isCodeBlastOn",pref:this.props.prefs.isCodeBlastOn,onChange:this.updateSetting.bind(this)})),cs,hs,Object(V.h)("p",null,Object(V.h)("label",{class:"line",title:"This timeout is used to indentify a possible infinite loop and prevent it."},"Maximum time allowed in a loop iteration",Object(V.h)("input",{type:"number",value:this.props.prefs.infiniteLoopTimeout,"data-setting":"infiniteLoopTimeout",onChange:this.updateSetting.bind(this)})," ","ms"),ps))}};n("zKjx");const ms="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='#ccc' d='M12,19.2C9.5,19.2 7.29,17.92 6,16C6.03,14 10,12.9 12,12.9C14,12.9 17.97,14 18,16C16.71,17.92 14.5,19.2 12,19.2M12,5A3,3 0 0,1 15,8A3,3 0 0,1 12,11A3,3 0 0,1 9,8A3,3 0 0,1 12,5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z' /%3E%3C/svg%3E";var gs=Object(V.h)("div",{class:"tac"},Object(V.h)("h1",null,"Support the Developer"),Object(V.h)("p",null,"Hi,"," ",Object(V.h)("a",{href:"https://kushagragour.in",target:"_blank",rel:"noopener noreferrer"},"Kushagra")," ","here! Web Maker is a free and open-source project. To keep myself motivated for working on such open-source and free"," ",Object(V.h)("a",{href:"https://kushagragour.in/lab/",target:"_blank",rel:"noopener noreferrer"},"side projects"),", I am accepting donations. Your pledge, no matter how small, will act as an appreciation towards my work and keep me going forward making Web Maker more awesome\uD83D\uDD25. So please consider donating. \uD83D\uDE4F\uD83C\uDFFC (could be as small as $1/month)."),Object(V.h)("div",{class:"flex flex-h-center",id:"onboardDontShowInTabOptionBtn","d-click":"onDontShowInTabClicked"},Object(V.h)("a",{class:"onboard-selection",href:"https://patreon.com/kushagra",target:"_blank",rel:"noopener noreferrer","aria-label":"Make a monthly pledge on Patreon"},Object(V.h)("img",{src:"patreon.png",height:"60",alt:"Become a patron image"}),Object(V.h)("h3",{class:"onboard-selection-text"},"Make a monthly pledge on Patreon"))),Object(V.h)("a",{href:"https://www.paypal.me/kushagragour",target:"_blank",rel:"noopener noreferrer","aria-label":"Make a one time donation on Paypal"},"Or, make a one time donation")),fs=Object(V.h)("h1",null,"Keyboard Shortcuts"),bs=Object(V.h)("div",{class:"flex"},Object(V.h)("div",null,Object(V.h)("h2",null,"Global"),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + Shift + ?"),Object(V.h)("span",{class:"kbd-shortcut__details"},"See keyboard shortcuts")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + Shift + 5"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Refresh preview")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + S"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Save current creations")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + O"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Open list of saved creations")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl + L"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Clear console (works when console input is focused)")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Esc"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Close saved creations panel & modals"))),Object(V.h)("div",{class:"ml-2"},Object(V.h)("h2",null,"Editor"),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + F"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Find")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + G"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Select next match")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + Shift + G"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Select previous match")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + Opt/Alt + F"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Find & replace")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Shift + Tab"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Realign code")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + ]"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Indent code right")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + ["),Object(V.h)("span",{class:"kbd-shortcut__details"},"Indent code left")),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Tab"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Emmet code completion"," ",Object(V.h)("a",{href:"https://emmet.io/",target:"_blank",rel:"noopener noreferrer"},"Read more"))),Object(V.h)("p",null,Object(V.h)("span",{class:"kbd-shortcut__keys"},"Ctrl/\u2318 + /"),Object(V.h)("span",{class:"kbd-shortcut__details"},"Single line comment")))),vs=Object(V.h)("h2",null,"Import your creations in your account"),Cs=Object(V.h)("p",null,"It's okay if you don't want to. You can simply logout and access them anytime on this browser."),ys=Object(V.h)("div",{class:"alerts-container",id:"js-alerts-container"});let Ss=class extends V.Component{shouldComponentUpdate(){return!1}render(){return ys}};var ws=Object(V.h)("h1",null,Object(V.h)("div",{class:"web-maker-with-tag"},"Web Maker"),Object(V.h)("small",{style:"font-size:14px;"}," v3.2.0")),ks=Object(V.h)("p",null,"Made with ",Object(V.h)("span",{style:"margin-right: 8px;"},"\uD83D\uDC96")," &"," ",Object(V.h)("span",{style:"margin-right: 8px;"},"\uD83D\uDE4C")," by"," ",Object(V.h)("a",{href:"https://twitter.com/chinchang457",target:"_blank",rel:"noopener noreferrer"},"Kushagra Gour")),xs=Object(V.h)("p",null,Object(V.h)("a",{href:"/docs",target:"_blank",rel:"noopener noreferrer"},"Read the documentation"),"."),Ms=Object(V.h)("p",null,"Tweet out your feature requests, comments & suggestions to"," ",Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://twitter.com/webmakerApp"},"@webmakerApp"),"."),_s=Object(V.h)("p",null,"Like this extension? Please"," ",Object(V.h)("a",{href:"https://chrome.google.com/webstore/detail/web-maker/lkfkkhfhhdkiemehlpkgjeojomhpccnh/reviews",target:"_blank",rel:"noopener noreferrer"},"rate it here"),"."),Ls=Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#gift-icon"})),Is=Object(V.h)("a",{"aria-label":"Rate Web Maker",href:"https://chrome.google.com/webstore/detail/web-maker/lkfkkhfhhdkiemehlpkgjeojomhpccnh/reviews",target:"_blank",rel:"noopener noreferrer",class:"btn btn-icon"},Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#heart-icon"})),"Share Web Maker"),Hs=Object(V.h)("a",{"aria-label":"Chat",href:"https://web-maker.slack.com",target:"_blank",rel:"noopener noreferrer",class:"btn btn-icon"},Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#chat-icon"})),"Chat"),As=Object(V.h)("a",{"aria-label":"Report a Bug",href:"https://github.com/chinchang/web-maker/issues",target:"_blank",rel:"noopener noreferrer",class:"btn btn-icon"},Object(V.h)("svg",null,Object(V.h)("use",{xlinkHref:"#bug-icon"})),"Report a bug"),js=Object(V.h)("p",null,Object(V.h)("h3",null,"Awesome libraries used"),Object(V.h)("ul",null,Object(V.h)("li",null,Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://kushagragour.in/lab/hint/"},"Hint.css")," ","&",Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/chinchang/screenlog.js"},"Screenlog.js")," ","- By me :)"),Object(V.h)("li",null,Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://nathancahill.github.io/Split.js/"},"Split.js")," ","- Nathan Cahill"),Object(V.h)("li",null,Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://codemirror.net/"},"Codemirror")," ","- Marijn Haverbeke"),Object(V.h)("li",null,Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://emmet.io/"},"Emmet")," ","- Sergey Chikuyonok"),Object(V.h)("li",null,Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"http://esprima.org/"},"Esprima")," ","- Ariya Hidayat"),Object(V.h)("li",null,Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/enjalot/Inlet"},"Inlet")," ","- Ian Johnson"),Object(V.h)("li",null,Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://webmakerapp.com/"},"Web Maker!")," ","- whhat!"))),Bs=Object(V.h)("p",null,Object(V.h)("h3",null,"License"),"\"Web Maker\" is"," ",Object(V.h)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/chinchang/web-maker"},"open-source")," ","under the"," ",Object(V.h)("a",{href:"https://opensource.org/licenses/MIT",target:"_blank",rel:"noopener noreferrer"},"MIT License"),"."),Es=Object(V.h)("div",{class:"tac"},Object(V.h)("svg",{width:"130px",height:"50px","aria-hidden":"true"},Object(V.h)("use",{xlinkHref:"#logo"})),Object(V.h)("h1",{style:"margin-top:20px"},"Welcome to Web Maker")),Os=Object(V.h)("div",{class:"flex",style:"margin-top:40px;"},Object(V.h)("div",{class:"onboard-step show-when-app"},Object(V.h)("div",{class:"tac"},Object(V.h)("svg",{class:"onboard-step__icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M13.64,21.97C13.14,22.21 12.54,22 12.31,21.5L10.13,16.76L7.62,18.78C7.45,18.92 7.24,19 7,19A1,1 0 0,1 6,18V3A1,1 0 0,1 7,2C7.24,2 7.47,2.09 7.64,2.23L7.65,2.22L19.14,11.86C19.57,12.22 19.62,12.85 19.27,13.27C19.12,13.45 18.91,13.57 18.7,13.61L15.54,14.23L17.74,18.96C18,19.46 17.76,20.05 17.26,20.28L13.64,21.97Z"}))),Object(V.h)("p",null,"Open Web Maker anytime by visiting"," ",Object(V.h)("a",null,"https://webmakerapp.com/app/")," - Even when you are offline! It just works! \uD83D\uDE31 ",Object(V.h)("strong",null,"Drag the following bookmarklet")," on your bookmark bar to create a quick access shortcut:",Object(V.h)("a",{class:"ml-1 bookmarklet",href:"https://webmakerapp.com/app/"},Object(V.h)("svg",{width:"20",height:"20","aria-hidden":"true"},Object(V.h)("use",{xlinkHref:"#logo"})),"Web Maker"))),Object(V.h)("div",{class:"onboard-step show-when-extension"},Object(V.h)("div",{class:"tac"},Object(V.h)("svg",{class:"onboard-step__icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M13.64,21.97C13.14,22.21 12.54,22 12.31,21.5L10.13,16.76L7.62,18.78C7.45,18.92 7.24,19 7,19A1,1 0 0,1 6,18V3A1,1 0 0,1 7,2C7.24,2 7.47,2.09 7.64,2.23L7.65,2.22L19.14,11.86C19.57,12.22 19.62,12.85 19.27,13.27C19.12,13.45 18.91,13.57 18.7,13.61L15.54,14.23L17.74,18.96C18,19.46 17.76,20.05 17.26,20.28L13.64,21.97Z"}))),Object(V.h)("p",null,"Open Web Maker anytime by clicking the",Object(V.h)("svg",{class:"relative",style:"top:5px;",width:"40",height:"30"},Object(V.h)("use",{xlinkHref:"#logo"}))," ","button in top-right side of your browser.")),Object(V.h)("div",{class:"onboard-step"},Object(V.h)("div",{class:"tac"},Object(V.h)("svg",{class:"onboard-step__icon",viewBox:"0 0 24 24"},Object(V.h)("use",{xlinkHref:"#settings-icon"}))),Object(V.h)("p",null,"Configure and customize settings by clicking the gear icon (",Object(V.h)("svg",{style:"width:18px;height:18px;position:relative;top:3px;fill:#888",viewBox:"0 0 24 24"},Object(V.h)("use",{xlinkHref:"#settings-icon"})),") in bottom right of the app.")),Object(V.h)("div",{class:"onboard-step"},Object(V.h)("div",{class:"tac"},Object(V.h)("svg",{class:"onboard-step__icon",style:"stroke-width:0.3px;"},Object(V.h)("use",{xlinkHref:"#twitter-icon"}))),Object(V.h)("p",null,"Follow"," ",Object(V.h)("a",{href:"https://twitter.com/intent/follow?screen_name=webmakerApp",targe:"_blank",rel:"noopener noreferrer"},"@webmakerApp")," ","to know about the new upcoming features!"))),Ts=Object(V.h)("p",{class:"tac show-when-app"},"If you are an existing Chrome extension user, you can import your creations from there to here."," ",Object(V.h)("a",{href:"https://medium.com/web-maker/importing-exporting-your-creations-d92e7de5c3dc",target:"_blank",rel:"noopener noreferrer"},"Learn how to export/import"),"."),Vs=Object(V.h)("symbol",{id:"logo",viewBox:"-145 -2 372 175"},Object(V.h)("g",{stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",transform:"translate(-145.000000, -1.000000)"},Object(V.h)("polygon",{id:"Path-1",fill:"#FF4600",points:"31 0 232 0 132 173.310547"}),Object(V.h)("polygon",{id:"Path-1",fill:"#FF6C00",points:"0 0 201 0 101 173.310547"}),Object(V.h)("polygon",{id:"Path-1",fill:"#FF6C00",transform:"translate(271.500000, 86.500000) scale(1, -1) translate(-271.500000, -86.500000) ",points:"171 0 372 0 272 173.310547"}),Object(V.h)("polygon",{id:"Path-1",fill:"#FF4600",transform:"translate(241.500000, 86.500000) scale(1, -1) translate(-241.500000, -86.500000) ",points:"141 0 342 0 242 173.310547"}))),Ps=Object(V.h)("symbol",{id:"bug-icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M14,12H10V10H14M14,16H10V14H14M20,8H17.19C16.74,7.22 16.12,6.55 15.37,6.04L17,4.41L15.59,3L13.42,5.17C12.96,5.06 12.5,5 12,5C11.5,5 11.04,5.06 10.59,5.17L8.41,3L7,4.41L8.62,6.04C7.88,6.55 7.26,7.22 6.81,8H4V10H6.09C6.04,10.33 6,10.66 6,11V12H4V14H6V15C6,15.34 6.04,15.67 6.09,16H4V18H6.81C7.85,19.79 9.78,21 12,21C14.22,21 16.15,19.79 17.19,18H20V16H17.91C17.96,15.67 18,15.34 18,15V14H20V12H18V11C18,10.66 17.96,10.33 17.91,10H20V8Z"})),Ds=Object(V.h)("symbol",{id:"google-icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M21.35,11.1H12.18V13.83H18.69C18.36,17.64 15.19,19.27 12.19,19.27C8.36,19.27 5,16.25 5,12C5,7.9 8.2,4.73 12.2,4.73C15.29,4.73 17.1,6.7 17.1,6.7L19,4.72C19,4.72 16.56,2 12.1,2C6.42,2 2.03,6.8 2.03,12C2.03,17.05 6.16,22 12.25,22C17.6,22 21.5,18.33 21.5,12.91C21.5,11.76 21.35,11.1 21.35,11.1V11.1Z"})),Fs=Object(V.h)("symbol",{id:"fb-icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M17,2V2H17V6H15C14.31,6 14,6.81 14,7.5V10H14L17,10V14H14V22H10V14H7V10H10V6A4,4 0 0,1 14,2H17Z"})),Ns=Object(V.h)("symbol",{id:"github-icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z"})),Ws=Object(V.h)("symbol",{id:"settings-icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z"})),zs=Object(V.h)("symbol",{id:"twitter-icon",viewBox:"0 0 16 16"},Object(V.h)("path",{d:"M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809 c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"})),Rs=Object(V.h)("symbol",{id:"heart-icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z"})),Us=Object(V.h)("symbol",{id:"play-icon",viewBox:"0 0 24 24"},Object(V.h)("svg",null,Object(V.h)("path",{d:"M8,5.14V19.14L19,12.14L8,5.14Z"}))),Ks=Object(V.h)("symbol",{id:"cancel-icon",viewBox:"0 0 24 24"},Object(V.h)("svg",null,Object(V.h)("path",{d:"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,13.85 4.63,15.55 5.68,16.91L16.91,5.68C15.55,4.63 13.85,4 12,4M12,20A8,8 0 0,0 20,12C20,10.15 19.37,8.45 18.32,7.09L7.09,18.32C8.45,19.37 10.15,20 12,20Z"}))),qs=Object(V.h)("symbol",{id:"chevron-icon",viewBox:"0 0 24 24"},Object(V.h)("svg",null,Object(V.h)("path",{d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"}))),Js=Object(V.h)("symbol",{id:"chat-icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M8,14H6V12H8V14M8,11H6V9H8V11M8,8H6V6H8V8M15,14H10V12H15V14M18,11H10V9H18V11M18,8H10V6H18V8Z"})),Ys=Object(V.h)("path",{d:"M22,12V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V12A1,1 0 0,1 1,11V8A2,2 0 0,1 3,6H6.17C6.06,5.69 6,5.35 6,5A3,3 0 0,1 9,2C10,2 10.88,2.5 11.43,3.24V3.23L12,4L12.57,3.23V3.24C13.12,2.5 14,2 15,2A3,3 0 0,1 18,5C18,5.35 17.94,5.69 17.83,6H21A2,2 0 0,1 23,8V11A1,1 0 0,1 22,12M4,20H11V12H4V20M20,20V12H13V20H20M9,4A1,1 0 0,0 8,5A1,1 0 0,0 9,6A1,1 0 0,0 10,5A1,1 0 0,0 9,4M15,4A1,1 0 0,0 14,5A1,1 0 0,0 15,6A1,1 0 0,0 16,5A1,1 0 0,0 15,4M3,8V10H11V8H3M13,8V10H21V8H13Z"}),Gs=Object(V.h)("symbol",{id:"gift-icon",viewBox:"0 0 24 24"}),Zs=Object(V.h)("symbol",{id:"cross-icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"})),Xs=Object(V.h)("symbol",{id:"keyboard-icon",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M19,10H17V8H19M19,13H17V11H19M16,10H14V8H16M16,13H14V11H16M16,17H8V15H16M7,10H5V8H7M7,13H5V11H7M8,11H10V13H8M8,8H10V10H8M11,11H13V13H11M11,8H13V10H11M20,5H4C2.89,5 2,5.89 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V7C22,5.89 21.1,5 20,5Z"})),Qs=Object(V.h)("symbol",{id:"mode-icon",viewBox:"0 0 100 100"},Object(V.h)("g",null,Object(V.h)("rect",{x:0,y:0,width:28,height:47}),Object(V.h)("rect",{x:36,y:0,width:28,height:47}),Object(V.h)("rect",{x:72,y:0,width:28,height:47}),Object(V.h)("rect",{x:0,y:53,width:100,height:47}))),$s=Object(V.h)("symbol",{id:"vertical-mode-icon",viewBox:"0 0 100 100"},Object(V.h)("g",null,Object(V.h)("rect",{x:0,y:0,width:20,height:100}),Object(V.h)("rect",{x:23,y:0,width:20,height:100}),Object(V.h)("rect",{x:46,y:0,width:20,height:100}),Object(V.h)("rect",{x:69,y:0,width:32,height:100}))),ei=Object(V.h)("symbol",{id:"search",viewBox:"0 0 24 24"},Object(V.h)("path",{d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"})),ti=Object(V.h)("g",{fill:"none",fillRule:"evenodd",strokeWidth:10},Object(V.h)("circle",{cx:22,cy:22,r:1},Object(V.h)("animate",{attributeName:"r",begin:"0s",dur:"1.8s",values:"1; 20",calcMode:"spline",keyTimes:"0; 1",keySplines:"0.165, 0.84, 0.44, 1",repeatCount:"indefinite"}),Object(V.h)("animate",{attributeName:"stroke-opacity",begin:"0s",dur:"1.8s",values:"1; 0",calcMode:"spline",keyTimes:"0; 1",keySplines:"0.3, 0.61, 0.355, 1",repeatCount:"indefinite"})),Object(V.h)("circle",{cx:22,cy:22,r:1},Object(V.h)("animate",{attributeName:"r",begin:"-0.9s",dur:"1.8s",values:"1; 20",calcMode:"spline",keyTimes:"0; 1",keySplines:"0.165, 0.84, 0.44, 1",repeatCount:"indefinite"}),Object(V.h)("animate",{attributeName:"stroke-opacity",begin:"-0.9s",dur:"1.8s",values:"1; 0",calcMode:"spline",keyTimes:"0; 1",keySplines:"0.3, 0.61, 0.355, 1",repeatCount:"indefinite"}))),ni=Object.assign||function(e){for(var t,n=1;nHello, World!\"}"})),di=Object(V.h)(zn,null),ci=Object(V.h)(function(){return Object(V.h)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",style:{display:"none"}},Vs,Ps,Ds,Fs,Ns,Ws,zs,Rs,Us,Ks,qs,Js,Object(V.h)("symbol",{id:"gift-icon",viewBox:"0 0 24 24"},Ys,Gs,Zs,Xs,Qs,$s,ei,Object(V.h)("symbol",{id:"loader-icon",viewBox:"0 0 44 44"},ti)))},null),hi=Object(V.h)("form",{style:"display:none;",action:"https://codepen.io/pen/define",method:"POST",target:"_blank",id:"codepenForm"},Object(V.h)("input",{type:"hidden",name:"data",value:"{\"title\": \"New Pen!\", \"html\": \"
Hello, World!
\"}"}));let pi=class extends V.Component{constructor(){super(),this.AUTO_SAVE_INTERVAL=15000,this.state={isSavedItemPaneOpen:!1,isModalOpen:!1,isAddLibraryModalOpen:!1,isSettingsModalOpen:!1,isHelpModalOpen:!1,isNotificationsModalOpen:!1,isLoginModalOpen:!1,isProfileModalOpen:!1,isSupportDeveloperModalOpen:!1,isKeyboardShortcutsModalOpen:!1,isAskToImportModalOpen:!1,isOnboardModalOpen:!1,prefs:{},currentItem:{title:"",externalLibs:{js:"",css:""}}},this.defaultSettings={preserveLastCode:!0,replaceNewTab:!1,htmlMode:"html",jsMode:"js",cssMode:"css",isCodeBlastOn:!1,indentWith:"spaces",indentSize:2,editorTheme:"monokai",keymap:"sublime",fontSize:16,refreshOnResize:!1,autoPreview:!0,editorFont:"FiraCode",editorCustomFont:"",autoSave:!0,autoComplete:!0,preserveConsoleLogs:!0,lightVersion:!1,lineWrap:!0,infiniteLoopTimeout:1e3,layoutMode:2},this.prefs={},Tn.a.auth().onAuthStateChanged((e)=>{this.setState({isLoginModalOpen:!1}),e?(c("You are -> ",e),gn.add("You are now logged in!"),this.setState({user:e}),window.user=e,!window.localStorage[oi.ASKED_TO_IMPORT_CREATIONS]&&this.fetchItems(!1,!0).then((e)=>{e.length&&(this.oldSavedItems=e,this.oldSavedCreationsCount=e.length,this.setState({isAskToImportModalOpen:!0}),v("ui","askToImportModalSeen"))}),window.db.getUser(e.uid).then((t)=>{if(t){const t=ni({},this.state.prefs);ni(t,e.settings),this.setState({prefs:t}),this.updateSetting()}})):(this.setState({user:void 0}),delete window.user),this.updateProfileUi()})}componentWillMount(){var e;window.onunload=()=>{this.saveCode("code"),this.detachedWindow&&this.detachedWindow.close()},db.local.get({layoutMode:1,code:""},(t)=>{this.toggleLayout(t.layoutMode),this.state.prefs.layoutMode=t.layoutMode,t.code&&(e=t.code)}),db.getSettings(this.defaultSettings).then((t)=>{t.preserveLastCode&&e?(this.setState({unsavedEditCount:0}),e.id&&window.IS_EXTENSION?db.local.get(e.id,(t)=>{t[e.id]&&(c("Load item ",e.id),this.setCurrentItem(t[e.id]).then(()=>this.refreshEditor()))}):(c("Load last unsaved item",e),this.setCurrentItem(e).then(()=>this.refreshEditor()))):this.createNewItem(),ni(this.state.prefs,t),this.setState({prefs:this.state.prefs}),this.updateSetting()}),db.getUserLastSeenVersion().then((e)=>{e||(this.setState({isOnboardModalOpen:!0}),-1===document.cookie.indexOf("onboarded")&&(v("ui","onboardModalSeen",ii),document.cookie="onboarded=1"),window.db.setUserLastSeenVersion(ii)),e&&-1===r(e,ii)&&!window.localStorage.pledgeModalSeen&&(this.openSupportDeveloperModal(),window.localStorage.pledgeModalSeen=!0),e&&-1!==r(e,ii)||(this.setState({hasUnseenChangelog:!0}),this.hasSeenNotifications=!1)})}updateProfileUi(){this.state.user?document.body.classList.add("is-logged-in"):document.body.classList.remove("is-logged-in")}refreshEditor(){this.toggleLayout(this.state.currentItem.layoutMode||this.state.prefs.layoutMode),this.updateExternalLibCount(),this.contentWrap.refreshEditor()}forkItem(e){if(this.state.unsavedEditCount){var t=confirm("You have unsaved changes in your current work. Do you want to discard unsaved changes and continue?");if(!t)return}const n=JSON.parse(JSON.stringify(e));delete n.id,n.title="(Forked) "+e.title,n.updatedOn=Date.now(),this.setCurrentItem(n).then(()=>this.refreshEditor()),gn.add(`"${e.title}" was forked`),v("fn","itemForked")}createNewItem(){var e=new Date;this.setCurrentItem({title:"Untitled "+e.getDate()+"-"+(e.getMonth()+1)+"-"+e.getHours()+":"+e.getMinutes(),html:"",css:"",js:"",externalLibs:{js:"",css:""},layoutMode:this.state.currentLayoutMode}).then(()=>this.refreshEditor()),gn.add("New item created")}openItem(e){this.setCurrentItem(e).then(()=>this.refreshEditor()),gn.add("Saved item loaded")}removeItem(e){var t=confirm(`Are you sure you want to delete "${e.title}"?`);t&&(un.unsetItemForUser(e.id),un.removeItem(e.id).then(()=>{gn.add("Item removed.",e),this.state.currentItem.id===e.id&&this.createNewItem()}),delete this.state.savedItems[e.id],this.setState({savedItems:ni({},this.state.savedItems)}),v("fn","itemRemoved"))}setCurrentItem(e){const t=o();return e.htmlMode=e.htmlMode||this.state.prefs.htmlMode||F.HTML,e.cssMode=e.cssMode||this.state.prefs.cssMode||N.CSS,e.jsMode=e.jsMode||this.state.prefs.jsMode||W.JS,this.setState({currentItem:e},t.resolve),this.isAutoSavingEnabled=!1,this.setState({unsavedEditCount:0}),t.promise}saveBtnClickHandler(){v("ui","saveBtnClick",this.state.currentItem.id?"saved":"new"),this.saveItem()}populateItemsInSavedPane(){this.setState({savedItems:ni({},this.state.savedItems)}),this.toggleSavedItemsPane()}toggleSavedItemsPane(){this.setState({isSavedItemPaneOpen:!this.state.isSavedItemPaneOpen}),this.state.isSavedItemPaneOpen?window.searchInput.focus():window.searchInput.value="",document.body.classList[this.state.isSavedItemPaneOpen?"add":"remove"]("overlay-visible")}async fetchItems(e,t){var n=o();this.state.savedItems={};var s=[];return window.user&&!t?(s=await un.getAllItems(),c("got items"),e&&s.forEach((e)=>{this.state.savedItems[e.id]=e}),n.resolve(s),n.promise):(db.local.get("items",(t)=>{var o=Object.getOwnPropertyNames(t.items||{});o.length||n.resolve([]),v("fn","fetchItems",o.length);for(let a=0;a{e&&(this.state.savedItems[o[a]]=t[o[a]]),s.push(t[o[a]]),o.length===s.length&&n.resolve(s)})}),n.promise)}openSavedItemsPane(){this.setState({isFetchingItems:!0}),this.fetchItems(!0).then((e)=>{this.setState({isFetchingItems:!1}),this.populateItemsInSavedPane(e)})}openAddLibrary(){this.setState({isAddLibraryModalOpen:!0})}closeSavedItemsPane(){this.setState({isSavedItemPaneOpen:!1}),document.body.classList.remove("overlay-visible"),this.editorWithFocus&&this.editorWithFocus.focus()}componentDidMount(){document.body.style.height=`${window.innerHeight}px`,window.addEventListener("keydown",(e)=>{(e.ctrlKey||e.metaKey)&&83===e.keyCode&&(e.preventDefault(),this.saveItem(),v("ui","saveItemKeyboardShortcut")),(e.ctrlKey||e.metaKey)&&e.shiftKey&&53===e.keyCode?(e.preventDefault(),this.contentWrap.setPreviewContent(!0,!0),v("ui","previewKeyboardShortcut")):(e.ctrlKey||e.metaKey)&&79===e.keyCode?(e.preventDefault(),this.openSavedItemsPane(),v("ui","openCreationKeyboardShortcut")):(e.ctrlKey||e.metaKey)&&e.shiftKey&&191===e.keyCode?(e.preventDefault(),this.setState({isKeyboardShortcutsModalOpen:!this.state.isKeyboardShortcutsModalOpen}),v("ui","showKeyboardShortcutsShortcut")):27===e.keyCode&&this.closeSavedItemsPane()})}closeAllOverlays(){this.state.isSavedItemPaneOpen&&this.closeSavedItemsPane(),this.setState({isAddLibraryModalOpen:!1,isSettingsModalOpen:!1,isHelpModalOpen:!1,isNotificationsModalOpen:!1,isLoginModalOpen:!1,isProfileModalOpen:!1,isSupportDeveloperModalOpen:!1,isKeyboardShortcutsModalOpen:!1,isAskToImportModalOpen:!1,isOnboardModalOpen:!1})}onExternalLibChange(e){c("onExternalLibChange"),this.state.currentItem.externalLibs={js:e.js,css:e.css},this.updateExternalLibCount(),this.setState({currentItem:ni({},this.state.currentItem)}),this.contentWrap.setPreviewContent(!0),gn.add("Libraries updated.")}updateExternalLibCount(){var e=0;e+=this.state.currentItem.externalLibs.js.split("\n").filter((e)=>!!e).length,e+=this.state.currentItem.externalLibs.css.split("\n").filter((e)=>!!e).length,this.setState({externalLibCount:e})}toggleLayout(e){return e=500>window.innerWidth?2:e,this.state.currentLayoutMode===e?(this.contentWrap.resetSplitting(),void this.setState({currentLayoutMode:e})):void([1,2,3,4,5].forEach((e)=>{window[`layoutBtn${e}`].classList.remove("selected"),document.body.classList.remove(`layout-${e}`)}),$("#layoutBtn"+e).classList.add("selected"),document.body.classList.add("layout-"+e),this.setState({currentLayoutMode:e},()=>{this.contentWrap.resetSplitting(),this.contentWrap.setPreviewContent(!0)}))}layoutBtnClickHandler(e){this.saveSetting("layoutMode",e),v("ui","toggleLayoutClick",e),this.toggleLayout(e)}getCodePaneSizes(){var e;const t=this.state.currentLayoutMode;var n=2===t||5===t?"width":"height";try{e=[htmlCodeEl.style[n],cssCodeEl.style[n],jsCodeEl.style[n]]}catch(t){e=[33.33,33.33,33.33]}finally{return e}}getMainPaneSizes(){var e;const t=this.state.currentLayoutMode;var n=2===t?"height":"width";try{e=[+$("#js-code-side").style[n].match(/([\d.]+)%/)[1],+$("#js-demo-side").style[n].match(/([\d.]+)%/)[1]]}catch(t){e=[50,50]}finally{return e}}saveSetting(e,t){const n=o();return db.local.set({[e]:t},n.resolve),n.promise}saveCode(e){return this.state.currentItem.updatedOn=Date.now(),this.state.currentItem.layoutMode=this.state.currentLayoutMode,this.state.currentItem.sizes=this.getCodePaneSizes(),this.state.currentItem.mainSizes=this.getMainPaneSizes(),c("saving key",e||this.state.currentItem.id,this.state.currentItem),un.setItem(e||this.state.currentItem.id,this.state.currentItem).then(function(){window.user&&!navigator.onLine?gn.add("Item saved locally. Will save to account when you are online."):gn.add("Item saved."),this.setState({unsavedEditCount:0})}.bind(this))}saveItem(){if(!window.user&&!window.localStorage[oi.LOGIN_AND_SAVE_MESSAGE_SEEN]){const e=confirm("Saving without signing in will save your work only on this machine and this browser. If you want it to be secure & available anywhere, please login in your account and then save.\n\nDo you still want to continue saving locally?");if(window.localStorage[oi.LOGIN_AND_SAVE_MESSAGE_SEEN]=!0,!e)return v("ui",oi.LOGIN_AND_SAVE_MESSAGE_SEEN,"login"),this.closeAllOverlays(),void this.setState({isLoginModalOpen:!0});v("ui",oi.LOGIN_AND_SAVE_MESSAGE_SEEN,"local")}var e=!this.state.currentItem.id;this.state.currentItem.id=this.state.currentItem.id||"item-"+l(),this.setState({isSaving:!0}),this.saveCode().then(()=>{this.setState({isSaving:!1}),!this.isAutoSavingEnabled&&this.state.prefs.autoSave&&(this.isAutoSavingEnabled=!0,gn.add("Auto-save enabled."))}),e&&un.setItemForUser(this.state.currentItem.id)}onCodeModeChange(e,t){const n=ni({},this.state.currentItem);n[`${e}Mode`]=t,this.setState({currentItem:n})}onCodeChange(e,t,n){this.state.currentItem[e]=t,n&&(this.setState({unsavedEditCount:this.state.unsavedEditCount+1}),0==this.state.unsavedEditCount%si&&this.state.unsavedEditCount>=si&&(window.saveBtn.classList.add("animated"),window.saveBtn.classList.add("wobble"),window.saveBtn.addEventListener("animationend",()=>{window.saveBtn.classList.remove("animated"),window.saveBtn.classList.remove("wobble")})))}onCodeSettingsChange(e,t){this.state.currentItem[`${e}Settings`]={acssConfig:t}}titleInputBlurHandler(t){this.state.currentItem.title=t.target.value,this.state.currentItem.id&&(this.saveItem(),v("ui","titleChanged"))}updateSetting(t){if(t){var e=t.target.dataset.setting,n={},o=t.target;c(e,"checkbox"===o.type?o.checked:o.value);const s=ni({},this.state.prefs);s[e]="checkbox"===o.type?o.checked:o.value,n[e]=s[e],this.setState({prefs:s}),db.sync.set(n,function(){gn.add("Setting saved")}),window.user&&window.db.getDb().then((t)=>{t.collection("users").doc(window.user.uid).update({[`settings.${e}`]:this.state.prefs[e]}).then((t)=>{c(`Setting "${e}" for user`,t)}).catch((e)=>c(e))}),v("ui","updatePref-"+e,s[e])}const s=this.state.prefs;runBtn.classList[s.autoPreview?"add":"remove"]("hide"),this.contentWrap.applyCodemirrorSettings(this.state.prefs),s.autoSave?!this.autoSaveInterval&&(this.autoSaveInterval=setInterval(()=>{this.autoSaveLoop()},this.AUTO_SAVE_INTERVAL)):(clearInterval(this.autoSaveInterval),this.autoSaveInterval=null),document.body.classList[s.lightVersion?"add":"remove"]("light-version")}autoSaveLoop(){this.isAutoSavingEnabled&&this.state.unsavedEditCount&&this.saveItem()}loginBtnClickHandler(){this.setState({isLoginModalOpen:!0})}profileBtnClickHandler(){this.setState({isProfileModalOpen:!0})}logout(){if(this.state.unsavedEditCount){var e=confirm("You have unsaved changes. Do you still want to logout?");if(!e)return}v("fn","loggedOut"),Vn.logout(),this.setState({isProfileModalOpen:!1}),gn.add("Log out successfull")}itemClickHandler(e){setTimeout(()=>{this.openItem(e)},350),this.toggleSavedItemsPane()}itemRemoveBtnClickHandler(e){this.removeItem(e)}itemForkBtnClickHandler(e){this.toggleSavedItemsPane(),setTimeout(()=>{this.forkItem(e)},350)}newBtnClickHandler(){if(v("ui","newBtnClick"),this.state.unsavedEditCount){var e=confirm("You have unsaved changes. Do you still want to create something new?");e&&this.createNewItem()}else this.createNewItem()}openBtnClickHandler(){v("ui","openBtnClick"),this.openSavedItemsPane()}detachedPreviewBtnHandler(){v("ui","detachPreviewBtnClick"),this.contentWrap.detachPreview()}notificationsBtnClickHandler(){return this.setState({isNotificationsModalOpen:!0}),this.state.isNotificationsModalOpen&&!this.hasSeenNotifications&&(this.hasSeenNotifications=!0,this.setState({hasUnseenChangelog:!1}),window.db.setUserLastSeenVersion(ii)),v("ui","notificationButtonClick",ii),!1}codepenBtnClickHandler(t){if(this.state.currentItem.cssMode===N.ACSS)return alert("Oops! CodePen doesn't supports Atomic CSS currently. \nHere is something you can still do -> https://medium.com/web-maker/sharing-your-atomic-css-work-on-codepen-a402001b26ab"),void t.preventDefault();var e={title:"A Web Maker experiment",html:this.state.currentItem.html,css:this.state.currentItem.css,js:this.state.currentItem.js,html_pre_processor:z[this.state.currentItem.htmlMode].codepenVal,css_pre_processor:z[this.state.currentItem.cssMode].codepenVal,js_pre_processor:z[this.state.currentItem.jsMode].codepenVal,css_external:this.state.currentItem.externalLibs.css.split("\n").join(";"),js_external:this.state.currentItem.externalLibs.js.split("\n").join(";")};this.state.currentItem.title.match(/Untitled\s\d\d*-\d/)||(e.title=this.state.currentItem.title),e=JSON.stringify(e),window.codepenForm.querySelector("input").value=e,window.codepenForm.submit(),v("ui","openInCodepen"),t.preventDefault()}saveHtmlBtnClickHandler(t){f(this.state.currentItem),v("ui","saveHtmlClick"),t.preventDefault()}runBtnClickHandler(){this.contentWrap.setPreviewContent(!0,!0),v("ui","runBtnClick")}exportItems(){b().then(()=>{this.fetchItems().then((e)=>{var t=new Date,n=["web-maker-export",t.getFullYear(),t.getMonth()+1,t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()].join("-");n+=".json";var o=new Blob([JSON.stringify(e,!1,2)],{type:"application/json;charset=UTF-8"});p(n,o),v("fn","exportItems")})})}exportBtnClickHandler(t){this.exportItems(),t.preventDefault(),v("ui","exportBtnClicked")}screenshotBtnClickHandler(t){this.contentWrap.getDemoFrame((e)=>{B(e.getBoundingClientRect())}),t.preventDefault()}openSupportDeveloperModal(){this.closeAllOverlays(),this.setState({isSupportDeveloperModalOpen:!0})}supportDeveloperBtnClickHandler(t){this.openSupportDeveloperModal(t)}dontAskToImportAnymore(t){this.setState({isAskToImportModalOpen:!1}),window.localStorage[oi.ASKED_TO_IMPORT_CREATIONS]=!0,t&&v("ui","dontAskToImportBtnClick")}importCreationsAndSettingsIntoApp(){this.mergeImportedItems(this.oldSavedItems).then(()=>{v("fn","oldItemsImported"),this.dontAskToImportAnymore()})}editorFocusHandler(e){this.editorWithFocus=e}modalOverlayClickHandler(){this.closeAllOverlays()}render(){return Object(V.h)("div",null,Object(V.h)("div",{class:"main-container"},Object(V.h)(w,{externalLibCount:this.state.externalLibCount,openBtnHandler:this.openBtnClickHandler.bind(this),newBtnHandler:this.newBtnClickHandler.bind(this),saveBtnHandler:this.saveBtnClickHandler.bind(this),loginBtnHandler:this.loginBtnClickHandler.bind(this),profileBtnHandler:this.profileBtnClickHandler.bind(this),addLibraryBtnHandler:this.openAddLibrary.bind(this),runBtnClickHandler:this.runBtnClickHandler.bind(this),isFetchingItems:this.state.isFetchingItems,isSaving:this.state.isSaving,title:this.state.currentItem.title,titleInputBlurHandler:this.titleInputBlurHandler.bind(this),user:this.state.user,unsavedEditCount:this.state.unsavedEditCount}),Object(V.h)(zt,{currentLayoutMode:this.state.currentLayoutMode,currentItem:this.state.currentItem,onCodeChange:this.onCodeChange.bind(this),onCodeSettingsChange:this.onCodeSettingsChange.bind(this),onCodeModeChange:this.onCodeModeChange.bind(this),onRef:(e)=>this.contentWrap=e,prefs:this.state.prefs,onEditorFocus:this.editorFocusHandler.bind(this)}),ai,Object(V.h)(cn,{layoutBtnClickHandler:this.layoutBtnClickHandler.bind(this),helpBtnClickHandler:()=>this.setState({isHelpModalOpen:!0}),settingsBtnClickHandler:()=>this.setState({isSettingsModalOpen:!0}),notificationsBtnClickHandler:this.notificationsBtnClickHandler.bind(this),supportDeveloperBtnClickHandler:this.supportDeveloperBtnClickHandler.bind(this),detachedPreviewBtnHandler:this.detachedPreviewBtnHandler.bind(this),codepenBtnClickHandler:this.codepenBtnClickHandler.bind(this),saveHtmlBtnClickHandler:this.saveHtmlBtnClickHandler.bind(this),keyboardShortcutsBtnClickHandler:()=>this.setState({isKeyboardShortcutsModalOpen:!0}),screenshotBtnClickHandler:this.screenshotBtnClickHandler.bind(this),hasUnseenChangelog:this.state.hasUnseenChangelog})),Object(V.h)(Cn,{items:this.state.savedItems,isOpen:this.state.isSavedItemPaneOpen,closeHandler:this.closeSavedItemsPane.bind(this),itemClickHandler:this.itemClickHandler.bind(this),itemRemoveBtnClickHandler:this.itemRemoveBtnClickHandler.bind(this),itemForkBtnClickHandler:this.itemForkBtnClickHandler.bind(this),exportBtnClickHandler:this.exportBtnClickHandler.bind(this)}),ri,li,Object(V.h)(bt,{show:this.state.isAddLibraryModalOpen,closeHandler:()=>this.setState({isAddLibraryModalOpen:!1})},Object(V.h)(En,{js:this.state.currentItem.externalLibs?this.state.currentItem.externalLibs.js:"",css:this.state.currentItem.externalLibs?this.state.currentItem.externalLibs.css:"",onChange:this.onExternalLibChange.bind(this)})),Object(V.h)(bt,{show:this.state.isNotificationsModalOpen,closeHandler:()=>this.setState({isNotificationsModalOpen:!1})},Object(V.h)(_,{onSupportBtnClick:this.openSupportDeveloperModal.bind(this)})),Object(V.h)(bt,{extraClasses:"modal--settings",show:this.state.isSettingsModalOpen,closeHandler:()=>this.setState({isSettingsModalOpen:!1})},Object(V.h)(us,{prefs:this.state.prefs,onChange:this.updateSetting.bind(this)})),Object(V.h)(bt,{extraClasses:"login-modal",show:this.state.isLoginModalOpen,closeHandler:()=>this.setState({isLoginModalOpen:!1})},di),Object(V.h)(bt,{show:this.state.isProfileModalOpen,closeHandler:()=>this.setState({isProfileModalOpen:!1})},Object(V.h)(I,{user:this.state.user,logoutBtnHandler:this.logout.bind(this)})),Object(V.h)(O,{show:this.state.isHelpModalOpen,closeHandler:()=>this.setState({isHelpModalOpen:!1}),onSupportBtnClick:this.openSupportDeveloperModal.bind(this)}),Object(V.h)(H,{show:this.state.isSupportDeveloperModalOpen,closeHandler:()=>this.setState({isSupportDeveloperModalOpen:!1})}),Object(V.h)(A,{show:this.state.isKeyboardShortcutsModalOpen,closeHandler:()=>this.setState({isKeyboardShortcutsModalOpen:!1})}),Object(V.h)(E,{show:this.state.isAskToImportModalOpen,closeHandler:()=>this.setState({isAskToImportModalOpen:!1}),oldSavedCreationsCount:this.oldSavedCreationsCount,importBtnClickHandler:this.importCreationsAndSettingsIntoApp.bind(this),dontAskBtnClickHandler:this.dontAskToImportAnymore.bind(this)}),Object(V.h)(T,{show:this.state.isOnboardModalOpen,closeHandler:()=>this.setState({isOnboardModalOpen:!1})}),Object(V.h)(ft.a,{into:"body"},Object(V.h)("div",{class:"modal-overlay",onClick:this.modalOverlayClickHandler.bind(this)})),ci,hi)}};t["default"]=pi}},["pwNi"]); \ No newline at end of file diff --git a/app/service-worker.js b/app/service-worker.js index 79a8102..1b34ad3 100644 --- a/app/service-worker.js +++ b/app/service-worker.js @@ -37,7 +37,7 @@ /* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */ 'use strict'; -var precacheConfig = [["FiraCode.ttf","fa1f8c8961adca519738d9518139579c"],["FixedSys.ttf","43cc87e8f9adba81b9d63b6e2d15db57"],["Inconsolata.ttf","b0639eb725c0df94f68b779889679457"],["Monoid.ttf","9b27db986ad2a74c522e9d3b6f7e2a63"],["detached-window.js","f05b0a0f2a8cc967028fb4f95f4a9614"],["icon-128.png","cf558ed413851d046b9dcc84c1d57543"],["icon-48.png","ca68956f464ed4fd2e09c66d5edaed5f"],["index.html","9d29741ca80edf97b511d4a237cb2d79"],["lib/codemirror/mode/coffeescript/coffeescript.js","dea87b9f4c669789c4760605d947f1a9"],["lib/codemirror/mode/css/css.js","6c9ca32a78c120340e588ed3df734138"],["lib/codemirror/mode/css/gss.html","9afa6e2f3a7daa6127a3f26e2e68005c"],["lib/codemirror/mode/css/gss_test.js","e40c6fd9abdc6edc2b29e521bda726e1"],["lib/codemirror/mode/css/less.html","a35ff50857d48bb2f4df8ac737f35d64"],["lib/codemirror/mode/css/scss.html","8c96251f27727a9b23b45c41511e23a0"],["lib/codemirror/mode/haml/haml.js","9abc1679e0f54dcdd62d2326ed6133f5"],["lib/codemirror/mode/htmlembedded/htmlembedded.js","67f745ab3879bf7bc3029ac75ea3e181"],["lib/codemirror/mode/htmlmixed/htmlmixed.js","2d6915b576f267e93f0e1cf72f31af37"],["lib/codemirror/mode/javascript/javascript.js","3b2f1591e3175a24846cb182943f2a40"],["lib/codemirror/mode/javascript/json-ld.html","a2a5069194b78b6b5523cace263cab06"],["lib/codemirror/mode/javascript/typescript.html","76c2ffb883a133aa0fc5cc75ec0c56f5"],["lib/codemirror/mode/jsx/jsx.js","7bee6944931c2cc6ccd99b50fca637db"],["lib/codemirror/mode/markdown/markdown.js","30dd4984e2e929429d70cf5174b35c5d"],["lib/codemirror/mode/meta.js","6e456ea5fd8920c85d5281bd1efecb4c"],["lib/codemirror/mode/pug/pug.js","e988fd72c82f3b11836f6a06f7452436"],["lib/codemirror/mode/sass/sass.js","bd31ac70e9a457abc2789c2b83a21984"],["lib/codemirror/mode/stylus/stylus.js","81e2d281ecbb1dcf5c86857097ae60a7"],["lib/codemirror/mode/xml/xml.js","80f64aaafa6af7844d14f32f3219bb26"],["lib/codemirror/theme/3024-day.css","73c8f41583b4b71dbe1e5eac5c96f1a9"],["lib/codemirror/theme/3024-night.css","745180be9a932f24c6c0dd4ebdf5a0ed"],["lib/codemirror/theme/abcdef.css","8004cb71fd65e58bdfa64fdd55241315"],["lib/codemirror/theme/ambiance-mobile.css","256f2dd130b80c6afaa40fddf700d12a"],["lib/codemirror/theme/ambiance.css","6a200e1f3976929816cf3ac4675c810a"],["lib/codemirror/theme/base16-dark.css","84b6347918411d58d7f9b65a7ee87f65"],["lib/codemirror/theme/base16-light.css","037c7f3d16fe6d5ae2baa532e334172b"],["lib/codemirror/theme/base2tone-meadow-dark.css","f9dd12e2e51fc1575c57f3e5edc2232f"],["lib/codemirror/theme/bespin.css","cc414e4ec18bc89b3c79935b0e27fc20"],["lib/codemirror/theme/blackboard.css","cf9366960ff65c8101793bc64fe13e88"],["lib/codemirror/theme/cobalt.css","3488b576456693fd7ced2da0e10c8a16"],["lib/codemirror/theme/colorforth.css","b2ee8d2296277fc2811a7473ee4e9977"],["lib/codemirror/theme/dracula.css","e514d652ae86bfeaed34237b7d3afe44"],["lib/codemirror/theme/duotone-dark.css","02ec891b23125aaf625d978a39fd24ca"],["lib/codemirror/theme/duotone-light.css","608d11459665117d708651ce7f803fde"],["lib/codemirror/theme/eclipse.css","194369eec66630cfaf662ce5f0a193be"],["lib/codemirror/theme/elegant.css","0a4227e805a9d5f73a55dd248c1b052d"],["lib/codemirror/theme/erlang-dark.css","b5543f5273c968449760ab0d6a2af6dc"],["lib/codemirror/theme/hopscotch.css","b924ed31af30b1c68e5a01fc3c9b0553"],["lib/codemirror/theme/icecoder.css","576d776abdf7e28ea9f84e2eb161a20d"],["lib/codemirror/theme/isotope.css","7bb44bff5190c427de5ae750d6369633"],["lib/codemirror/theme/lesser-dark.css","da2c896bff035cec86fa98b6dc13f7cc"],["lib/codemirror/theme/liquibyte.css","9f37e7a4f3c02bec9bb735b78ed082d6"],["lib/codemirror/theme/material.css","11e812a3688805b5c187a6e6852bafe1"],["lib/codemirror/theme/mbo.css","55ff4bdd8a92c3dcbfd5421c532b3059"],["lib/codemirror/theme/mdn-like.css","79f8dabc5593d01d27bc824b801f9f05"],["lib/codemirror/theme/midnight.css","950e76dca6461ee1a2eac39f2d886613"],["lib/codemirror/theme/monokai.css","31c75ebee6311d49c046ffbbb91028f4"],["lib/codemirror/theme/neat.css","6b19894b9787c6791c250a95d0d4f8d6"],["lib/codemirror/theme/neo.css","2886072b53043c167e6f8765606c705c"],["lib/codemirror/theme/night.css","fe3ce7650a77e7e3887816dd7b6d880d"],["lib/codemirror/theme/panda-syntax.css","acbf94261e43c1f29c2252eb445de032"],["lib/codemirror/theme/paraiso-dark.css","3c24cee0dfac767713840b24e8359c99"],["lib/codemirror/theme/paraiso-light.css","e245bbfd22b4f61efe526ff13903f19e"],["lib/codemirror/theme/pastel-on-dark.css","48aae1a42733db57bd0a260ce0d83975"],["lib/codemirror/theme/railscasts.css","a5e7682d89da46244e5464d9572e24d8"],["lib/codemirror/theme/rubyblue.css","52bb601017a90bca522d66f6e82e73aa"],["lib/codemirror/theme/seti.css","f71668880eb1625f420ceaad670436f0"],["lib/codemirror/theme/solarized dark.css","4d05a166d713bb1ac24833061c1522d7"],["lib/codemirror/theme/solarized light.css","4d05a166d713bb1ac24833061c1522d7"],["lib/codemirror/theme/the-matrix.css","33c49ceeedafd0a08e712e465e3ad3ce"],["lib/codemirror/theme/tomorrow-night-bright.css","777d36e1c5bbfeb3bf2ca8dd607eee93"],["lib/codemirror/theme/tomorrow-night-eighties.css","5ceb5531fbe074d5190b55e8c725051e"],["lib/codemirror/theme/ttcn.css","d2cb74dfae563a10e9c286357429ea8b"],["lib/codemirror/theme/twilight.css","684040adf66ef89355cb7ebc6b54b00b"],["lib/codemirror/theme/vibrant-ink.css","f10004836fb29cc9a08c987d3e18938a"],["lib/codemirror/theme/xq-dark.css","60f162f0c4240e7352364d436b5598fa"],["lib/codemirror/theme/xq-light.css","447e80da7fe8c5c2bcf39127200cead2"],["lib/codemirror/theme/yeti.css","623dc805bc84dd6d25deef376593354e"],["lib/codemirror/theme/zenburn.css","94ad50bf3d048ed92cc513cd901dc685"],["lib/screenlog.js","974cb1ec0473b11ae4834028c1820816"],["lib/transpilers/atomizer.browser.js","c2925b84a627b017797664530f284618"],["lib/transpilers/babel-polyfill.min.js","6fef55c62df380d41c8f42f8b0c1f4da"],["lib/transpilers/babel.min.js","77a1a84bbc2661db874c738f9b3ba375"],["lib/transpilers/coffee-script.js","df68698ca5d438d7fb70c3c259155a37"],["lib/transpilers/jade.js","529e365c68f8d5efc4cea18be310bd76"],["lib/transpilers/less.min.js","6fd457ee80aaf9aa8758fe8a2345c970"],["lib/transpilers/marked.js","93163e72d380637970dc957c6cf75a77"],["lib/transpilers/sass.js","1263518af3f8b2090c9b08d195bd20d9"],["lib/transpilers/sass.worker.js","0d6c944b36008580fbedc09642f7f656"],["lib/transpilers/stylus.min.js","58f6030903ab52f596fb407dcd3df34f"],["lib/transpilers/typescript.js","cc0882a3185037052e21fa06a38ef077"],["partials/ask-to-import-modal.html","4c41c4fe11e4812ba6258d8e04d27d40"],["partials/changelog.html","d07acae211850ce1db53678b6258f9e5"],["partials/help-modal.html","c43bfe929337f371221503e83c62bdb8"],["partials/keyboard-shortcuts.html","d7c4124380a4eeb18968d55276d19591"],["partials/login-modal.html","7bb43bece90a93308919fb00162ee669"],["partials/onboard-modal.html","e9597ff891a70080a418e98abf198a5d"],["partials/pledge-modal.html","13f16984222c6447fb830250a818b763"],["patreon.png","8b4321f782e84764e556af3dee32a131"],["preview.html","632a603a300de4922f0c30b6749d850a"],["script.js","fca9fb7b8cef5ec1dd408e67de8d8deb"],["style.css","2458fa214798057cae13ddf358d3e7a2"],["vendor.css","6ed94306315b8aaf789c53091c23bb4b"],["vendor.js","bc5f5398fd1f7495a3d2c0408b75578e"]]; +var precacheConfig = [["FiraCode.ttf","fa1f8c8961adca519738d9518139579c"],["FixedSys.ttf","43cc87e8f9adba81b9d63b6e2d15db57"],["Inconsolata.ttf","b0639eb725c0df94f68b779889679457"],["Monoid.ttf","9b27db986ad2a74c522e9d3b6f7e2a63"],["detached-window.js","f05b0a0f2a8cc967028fb4f95f4a9614"],["icon-128.png","cf558ed413851d046b9dcc84c1d57543"],["icon-48.png","ca68956f464ed4fd2e09c66d5edaed5f"],["index.html","2df6e01f236e6c99bf7c4f84feeca789"],["lib/codemirror/mode/coffeescript/coffeescript.js","dea87b9f4c669789c4760605d947f1a9"],["lib/codemirror/mode/css/css.js","6c9ca32a78c120340e588ed3df734138"],["lib/codemirror/mode/css/gss.html","9afa6e2f3a7daa6127a3f26e2e68005c"],["lib/codemirror/mode/css/gss_test.js","e40c6fd9abdc6edc2b29e521bda726e1"],["lib/codemirror/mode/css/less.html","a35ff50857d48bb2f4df8ac737f35d64"],["lib/codemirror/mode/css/scss.html","8c96251f27727a9b23b45c41511e23a0"],["lib/codemirror/mode/haml/haml.js","9abc1679e0f54dcdd62d2326ed6133f5"],["lib/codemirror/mode/htmlembedded/htmlembedded.js","67f745ab3879bf7bc3029ac75ea3e181"],["lib/codemirror/mode/htmlmixed/htmlmixed.js","2d6915b576f267e93f0e1cf72f31af37"],["lib/codemirror/mode/javascript/javascript.js","3b2f1591e3175a24846cb182943f2a40"],["lib/codemirror/mode/javascript/json-ld.html","a2a5069194b78b6b5523cace263cab06"],["lib/codemirror/mode/javascript/typescript.html","76c2ffb883a133aa0fc5cc75ec0c56f5"],["lib/codemirror/mode/jsx/jsx.js","7bee6944931c2cc6ccd99b50fca637db"],["lib/codemirror/mode/markdown/markdown.js","30dd4984e2e929429d70cf5174b35c5d"],["lib/codemirror/mode/meta.js","6e456ea5fd8920c85d5281bd1efecb4c"],["lib/codemirror/mode/pug/pug.js","e988fd72c82f3b11836f6a06f7452436"],["lib/codemirror/mode/sass/sass.js","bd31ac70e9a457abc2789c2b83a21984"],["lib/codemirror/mode/stylus/stylus.js","81e2d281ecbb1dcf5c86857097ae60a7"],["lib/codemirror/mode/xml/xml.js","80f64aaafa6af7844d14f32f3219bb26"],["lib/codemirror/theme/3024-day.css","73c8f41583b4b71dbe1e5eac5c96f1a9"],["lib/codemirror/theme/3024-night.css","745180be9a932f24c6c0dd4ebdf5a0ed"],["lib/codemirror/theme/abcdef.css","8004cb71fd65e58bdfa64fdd55241315"],["lib/codemirror/theme/ambiance-mobile.css","256f2dd130b80c6afaa40fddf700d12a"],["lib/codemirror/theme/ambiance.css","6a200e1f3976929816cf3ac4675c810a"],["lib/codemirror/theme/base16-dark.css","84b6347918411d58d7f9b65a7ee87f65"],["lib/codemirror/theme/base16-light.css","037c7f3d16fe6d5ae2baa532e334172b"],["lib/codemirror/theme/base2tone-meadow-dark.css","f9dd12e2e51fc1575c57f3e5edc2232f"],["lib/codemirror/theme/bespin.css","cc414e4ec18bc89b3c79935b0e27fc20"],["lib/codemirror/theme/blackboard.css","cf9366960ff65c8101793bc64fe13e88"],["lib/codemirror/theme/cobalt.css","3488b576456693fd7ced2da0e10c8a16"],["lib/codemirror/theme/colorforth.css","b2ee8d2296277fc2811a7473ee4e9977"],["lib/codemirror/theme/dracula.css","e514d652ae86bfeaed34237b7d3afe44"],["lib/codemirror/theme/duotone-dark.css","02ec891b23125aaf625d978a39fd24ca"],["lib/codemirror/theme/duotone-light.css","608d11459665117d708651ce7f803fde"],["lib/codemirror/theme/eclipse.css","194369eec66630cfaf662ce5f0a193be"],["lib/codemirror/theme/elegant.css","0a4227e805a9d5f73a55dd248c1b052d"],["lib/codemirror/theme/erlang-dark.css","b5543f5273c968449760ab0d6a2af6dc"],["lib/codemirror/theme/hopscotch.css","b924ed31af30b1c68e5a01fc3c9b0553"],["lib/codemirror/theme/icecoder.css","576d776abdf7e28ea9f84e2eb161a20d"],["lib/codemirror/theme/isotope.css","7bb44bff5190c427de5ae750d6369633"],["lib/codemirror/theme/lesser-dark.css","da2c896bff035cec86fa98b6dc13f7cc"],["lib/codemirror/theme/liquibyte.css","9f37e7a4f3c02bec9bb735b78ed082d6"],["lib/codemirror/theme/material.css","11e812a3688805b5c187a6e6852bafe1"],["lib/codemirror/theme/mbo.css","55ff4bdd8a92c3dcbfd5421c532b3059"],["lib/codemirror/theme/mdn-like.css","79f8dabc5593d01d27bc824b801f9f05"],["lib/codemirror/theme/midnight.css","950e76dca6461ee1a2eac39f2d886613"],["lib/codemirror/theme/monokai.css","31c75ebee6311d49c046ffbbb91028f4"],["lib/codemirror/theme/neat.css","6b19894b9787c6791c250a95d0d4f8d6"],["lib/codemirror/theme/neo.css","2886072b53043c167e6f8765606c705c"],["lib/codemirror/theme/night.css","fe3ce7650a77e7e3887816dd7b6d880d"],["lib/codemirror/theme/panda-syntax.css","acbf94261e43c1f29c2252eb445de032"],["lib/codemirror/theme/paraiso-dark.css","3c24cee0dfac767713840b24e8359c99"],["lib/codemirror/theme/paraiso-light.css","e245bbfd22b4f61efe526ff13903f19e"],["lib/codemirror/theme/pastel-on-dark.css","48aae1a42733db57bd0a260ce0d83975"],["lib/codemirror/theme/railscasts.css","a5e7682d89da46244e5464d9572e24d8"],["lib/codemirror/theme/rubyblue.css","52bb601017a90bca522d66f6e82e73aa"],["lib/codemirror/theme/seti.css","f71668880eb1625f420ceaad670436f0"],["lib/codemirror/theme/solarized dark.css","4d05a166d713bb1ac24833061c1522d7"],["lib/codemirror/theme/solarized light.css","4d05a166d713bb1ac24833061c1522d7"],["lib/codemirror/theme/the-matrix.css","33c49ceeedafd0a08e712e465e3ad3ce"],["lib/codemirror/theme/tomorrow-night-bright.css","777d36e1c5bbfeb3bf2ca8dd607eee93"],["lib/codemirror/theme/tomorrow-night-eighties.css","5ceb5531fbe074d5190b55e8c725051e"],["lib/codemirror/theme/ttcn.css","d2cb74dfae563a10e9c286357429ea8b"],["lib/codemirror/theme/twilight.css","684040adf66ef89355cb7ebc6b54b00b"],["lib/codemirror/theme/vibrant-ink.css","f10004836fb29cc9a08c987d3e18938a"],["lib/codemirror/theme/xq-dark.css","60f162f0c4240e7352364d436b5598fa"],["lib/codemirror/theme/xq-light.css","447e80da7fe8c5c2bcf39127200cead2"],["lib/codemirror/theme/yeti.css","623dc805bc84dd6d25deef376593354e"],["lib/codemirror/theme/zenburn.css","94ad50bf3d048ed92cc513cd901dc685"],["lib/screenlog.js","974cb1ec0473b11ae4834028c1820816"],["lib/transpilers/atomizer.browser.js","c2925b84a627b017797664530f284618"],["lib/transpilers/babel-polyfill.min.js","6fef55c62df380d41c8f42f8b0c1f4da"],["lib/transpilers/babel.min.js","77a1a84bbc2661db874c738f9b3ba375"],["lib/transpilers/coffee-script.js","df68698ca5d438d7fb70c3c259155a37"],["lib/transpilers/jade.js","529e365c68f8d5efc4cea18be310bd76"],["lib/transpilers/less.min.js","6fd457ee80aaf9aa8758fe8a2345c970"],["lib/transpilers/marked.js","93163e72d380637970dc957c6cf75a77"],["lib/transpilers/sass.js","1263518af3f8b2090c9b08d195bd20d9"],["lib/transpilers/sass.worker.js","0d6c944b36008580fbedc09642f7f656"],["lib/transpilers/stylus.min.js","58f6030903ab52f596fb407dcd3df34f"],["lib/transpilers/typescript.js","cc0882a3185037052e21fa06a38ef077"],["partials/ask-to-import-modal.html","4c41c4fe11e4812ba6258d8e04d27d40"],["partials/changelog.html","d07acae211850ce1db53678b6258f9e5"],["partials/help-modal.html","c43bfe929337f371221503e83c62bdb8"],["partials/keyboard-shortcuts.html","d7c4124380a4eeb18968d55276d19591"],["partials/login-modal.html","7bb43bece90a93308919fb00162ee669"],["partials/onboard-modal.html","e9597ff891a70080a418e98abf198a5d"],["partials/pledge-modal.html","13f16984222c6447fb830250a818b763"],["patreon.png","8b4321f782e84764e556af3dee32a131"],["preview.html","ad041893596a3a2045aeab80feb24532"],["script.js","c2bfe11d5518028166f30341eb524156"],["style.css","b423a72dd541d4ffb321b914c329d120"],["vendor.css","6ed94306315b8aaf789c53091c23bb4b"],["vendor.js","416d6e23c564d952f01a9e8da2654315"]]; var cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : ''); @@ -45,7 +45,7 @@ var ignoreUrlParametersMatching = [/^utm_/]; -var addDirectoryIndex = function (originalUrl, index) { +var addDirectoryIndex = function(originalUrl, index) { var url = new URL(originalUrl); if (url.pathname.slice(-1) === '/') { url.pathname += index; @@ -53,7 +53,7 @@ var addDirectoryIndex = function (originalUrl, index) { return url.toString(); }; -var cleanResponse = function (originalResponse) { +var cleanResponse = function(originalResponse) { // If this is not a redirected response, then we don't have to do anything. if (!originalResponse.redirected) { return Promise.resolve(originalResponse); @@ -75,7 +75,7 @@ var cleanResponse = function (originalResponse) { }); }; -var createCacheKey = function (originalUrl, paramName, paramValue, +var createCacheKey = function(originalUrl, paramName, paramValue, dontCacheBustUrlsMatching) { // Create a new URL object to avoid modifying originalUrl. var url = new URL(originalUrl); @@ -91,7 +91,7 @@ var createCacheKey = function (originalUrl, paramName, paramValue, return url.toString(); }; -var isPathWhitelisted = function (whitelist, absoluteUrlString) { +var isPathWhitelisted = function(whitelist, absoluteUrlString) { // If the whitelist is empty, then consider all URLs to be whitelisted. if (whitelist.length === 0) { return true; @@ -104,7 +104,7 @@ var isPathWhitelisted = function (whitelist, absoluteUrlString) { }); }; -var stripIgnoredUrlParameters = function (originalUrl, +var stripIgnoredUrlParameters = function(originalUrl, ignoreUrlParametersMatching) { var url = new URL(originalUrl); // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290 diff --git a/app/style.css b/app/style.css index d3ced79..111eab1 100644 --- a/app/style.css +++ b/app/style.css @@ -1 +1 @@ -:root{--color-bg:#252637;--color-sidebar:#3a2b63;--code-font-size:16px;--color-button:#0074d9}body{margin:0;padding:0;background:rgba(0,0,0,.5);background:var(--color-bg);color:rgba(255,255,255,.9);min-height:100vh;font-size:87.5%;position:relative;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif,'Segoe UI Emoji','Segoe UI Symbol'}h1{margin-top:0}a{text-decoration:none;color:#d61237;cursor:pointer}p{line-height:1.65}.hide{display:none!important}.flex{display:flex}.flex-grow{flex-grow:1}.flex-v-center{align-items:center}.flex-h-center{justify-content:center}.flex-h-end{justify-content:flex-end}.fr{float:right}.relative{position:relative}.tac{text-align:center}.tar{text-align:right}.va-m{vertical-align:middle}.full-width{width:100%}.opacity--30{opacity:.3}.opacity--70{opacity:.7}.pointer-none{pointer-events:none}.ml-1{margin-left:1rem}.ml-2{margin-left:2rem}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}@media screen and (max-width:500px){.block--mobile{display:block}.ml-0--mobile{margin-left:0}.hide-on-mobile{display:none!important}}hr{background:0;border:0;border-bottom:1px solid #dedede}label{cursor:pointer}[class*=hint--]:after{text-transform:none;font-weight:400;letter-spacing:.5px;font-size:14px}.line{display:block;margin-bottom:1em}.caret{display:inline-block;width:0;height:0;border:6px solid transparent;border-top-color:currentColor;position:relative;top:5px;margin-left:8px}a>svg{fill:rgba(255,255,255,.2)}input[type=number],input[type=text],select,textarea{padding:3px 5px;font-size:inherit}.hidden-select{opacity:0;position:absolute;left:0;right:0;top:0;bottom:0}.btn{display:inline-block;color:var(--color-button);font-size:inherit;border:3px solid var(--color-button);border-radius:5px;padding:9px 15px;cursor:pointer;letter-spacing:.2px;line-height:1;transition:box-shadow .2s ease}.btn--primary{background:var(--color-button) linear-gradient(180deg,rgba(0,0,0,.5) 0,transparent);color:#fff}.btn--big{padding:15px 30px;border-radius:3px}.btn-icon{display:inline-flex;align-items:center}.btn:hover{text-decoration:none;box-shadow:0 5px 5px 0 rgba(0,0,0,.25)}.btn:focus{outline-width:4px;outline-color:#b76b29;outline-style:solid;outline-offset:1px}.btn-icon>svg{width:20px;height:20px;fill:currentColor;vertical-align:middle;margin-right:8px}.btn--big>svg{width:25px;height:25px;margin-right:12px}.btn-loader{display:none}.is-loading>svg{display:none}.is-loading .btn-loader{display:block}.star:after{content:'★';color:#eee333}.show-when-selected{display:none}.selected .show-when-selected{display:inline-block}.main-container{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;flex-direction:column;overflow:hidden;transition:.1s ease .2s;will-change:filter}body:not(.light-version).overlay-visible .main-container{transition-duration:.5s;transition-delay:.4s;filter:blur(3px)}.content-wrap{max-height:calc(100% - 70px)}.code-side,.demo-side{flex-basis:inherit;position:relative;width:50%}.layout-3 .content-wrap{flex-direction:row-reverse}.code-side{display:flex;flex-direction:column}.layout-2 .content-wrap{flex-direction:column}.layout-2 .code-side{flex-direction:row;width:auto}.layout-2 .demo-side{width:auto}.layout-5 .code-side{flex-direction:row;width:auto}.layout-5 .code-wrap{height:auto}.layout-4 .code-side{display:none}.layout-4 .code-side+.gutter{display:none}.layout-4 .demo-side{width:100%!important}.is-detached-mode .demo-side{display:none}.is-detached-mode .code-side{width:100%!important}.is-detached-mode.layout-2 .code-side{height:auto!important}.code-wrap{display:flex;flex-direction:column;flex-basis:inherit;height:33%;overflow:hidden;position:relative;background:var(--color-bg);transition:height .3s ease,width .3s ease;will-change:height}.layout-2 .code-wrap.is-minimized,.layout-5 .code-wrap.is-minimized{flex-direction:row}.is-dragging .code-wrap{transition:none}.layout-2 .code-wrap{height:auto;width:33%}.code-wrap__header{display:flex;flex-shrink:0;justify-content:space-between;align-items:center;padding:5px 10px;background:rgba(0,0,0,.2);color:#888;border-bottom:1px solid rgba(0,0,0,.3);font-weight:700;user-select:none}.code-wrap__header-label{display:inline-block;font-size:1.1em}.layout-2 .code-side .is-minimized .code-wrap__header,.layout-5 .code-side .is-minimized .code-wrap__header{writing-mode:vertical-lr;padding:10px 5px}.code-wrap__header .caret{transition:.2s ease}.is-minimized .code-wrap__header .caret{opacity:0}.code-wrap__header-btn{display:inline-block;vertical-align:top;margin-left:8px}.code-wrap__header-btn,.code-wrap__header-btn>svg{width:18px;height:18px}.code-wrap__header-right-options{position:relative;z-index:1}.code-wrap__collapse-btn:before{content:url('data:image/svg+xml;utf8,')}.is-maximized .code-wrap__collapse-btn:before{content:url('data:image/svg+xml;utf8,')}@keyframes pop-in{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.Codemirror{width:100%;height:calc(100% - 25px);font-size:var(--code-font-size)}.layout-2 .is-minimized .Codemirror,.layout-5 .is-minimized .Codemirror{height:calc(100%)}.Codemirror pre{font-variant-ligatures:contextual}.cm-s-monokai .CodeMirror-linenumber{color:rgba(255,255,255,.2)}.cm-s-monokai .CodeMirror-gutters,.cm-s-monokai.CodeMirror{background:var(--color-bg)}.cm-s-monokai .CodeMirror-guttermarker-subtle{opacity:.4}.cm-s-monokai .CodeMirror-activeline-background,.cm-s-monokai .CodeMirror-activeline-gutter{background:rgba(0,0,0,.1)!important}.CodeMirror-hints{font-size:var(--code-font-size);border:0;background:#1e1e2c}.CodeMirror-hint{color:#bbb;padding:2px 4px}li.CodeMirror-hint-active{background:#5b429d}#demo-frame{border:0;width:100%;height:calc(100% - 29px);position:absolute;z-index:1;background:#fff}body>#demo-frame{height:100%}.footer,.main-header{padding:5px 10px;background-color:#12131b;color:rgba(255,255,255,.45);border-top:1px solid rgba(255,255,255,.14)}.footer{z-index:6}.main-header{display:flex;flex-wrap:nowrap;border:0;border-bottom:1px solid rgba(255,255,255,.14)}.main-header__btn-wrap>a{font-size:.8em;font-weight:700;line-height:20px;height:20px;letter-spacing:.6px;color:#9297b3;border-radius:3px;margin-left:10px;padding:0 8px;border:1px solid rgba(0,0,0,.9);background:linear-gradient(180deg,rgba(0,0,0,.5) 0,rgba(255,255,255,.1) 100%);box-shadow:0 -1px 0 0 rgba(255,255,255,.15);text-transform:uppercase}.main-header__btn-wrap>a>svg{fill:#9297b3;margin-right:4px}.main-header__btn-wrap>a.is-marked>svg{fill:#dc143c}.main-header__btn-wrap>a:hover{border-color:rgba(146,151,179,.5)}.main-header__btn-wrap>a.is-loading{pointer-events:none;opacity:.4}.main-header__avatar-img,.profile-modal__avatar-img{border-radius:50%}.logo{display:inline-block;height:25px;width:48px;margin-right:5px;background:url(icon-48.png) 0 -12px;background-repeat:no-repeat;vertical-align:middle;-webkit-filter:grayscale(.9);filter:grayscale(.9);transition:.4s ease;opacity:.3;will-change:opacity,filter}.footer:hover .logo{-webkit-filter:grayscale(0);filter:grayscale(0);opacity:1}.footer__right{font-size:0;line-height:0}.footer__separator{display:inline-block;height:24px;margin:0 10px 0 20px;border-left:1px solid rgba(255,255,255,.2)}.mode-btn{margin-left:10px;display:inline-block}.footer__link:first-of-type{margin-left:5px}.footer__link{display:inline-block;margin-right:5px;position:relative;top:2px}.footer a>svg{transition:.3s ease;fill:rgba(255,255,255,.2)}.footer a:hover svg{fill:rgba(255,255,255,.45)}.mode-btn svg{width:24px;height:24px}.mode-btn.selected svg{fill:rgba(255,255,255,.45)}.gutter{background:rgba(255,255,255,.05);flex-shrink:0}.gutter-horizontal{cursor:ew-resize}.gutter-vertical{cursor:ns-resize}.item-title-input{background:0 0;border:0;color:rgba(255,255,255,.6);flex:1}.search-input{background:rgba(255,255,255,.1);padding:10px 20px;border:0;width:100%;font-size:16px;color:#fff;border-radius:4px}.modal{position:fixed;top:0;left:0;width:100vw;height:100vh;overflow-y:auto;align-items:center;display:flex;align-items:baseline;justify-content:center;z-index:2000;visibility:hidden}.modal__close-btn{position:absolute;right:10px;top:10px;opacity:.8;transition:.25s ease}.modal__close-btn>svg{fill:#000;width:30px;height:30px}.modal__close-btn:hover{opacity:.7}.modal__content{background:#fdfdfd;color:#444;position:relative;border-radius:8px;opacity:0;padding:3em;font-size:1.1em;line-height:1.4;max-width:85vw;margin:2rem auto;box-sizing:border-box;overflow-y:auto;pointer-events:auto;transition-property:transform,opacity;transition-duration:.19s;transform:translateY(50px) scale(.95)}@media screen and (max-width:900px){.modal__content{max-width:95vw}}.is-modal-visible{visibility:visible}.is-modal-visible .modal__content{transition-duration:.3s;transform:translateY(0) scale(1);opacity:1}.modal-overlay{position:fixed;width:100%;height:100%;visibility:hidden;top:0;left:0;z-index:5;opacity:0;will-change:opacity;background:rgba(0,0,0,.6);transition:opacity .3s}.ask-to-import-modal .modal__content,.pledge-modal .modal__content{max-width:800px}.login-modal .modal__content{overflow-y:initial}.saved-items-pane{position:fixed;right:0;top:0;bottom:0;width:450px;padding:20px 30px;z-index:6;background-color:var(--color-sidebar);transition:.3s cubic-bezier(1,.13,.21,.87);transition-property:transform;will-change:transform;transform:translateX(100%)}.saved-items-pane.is-open{transition-duration:.4s;transform:translateX(0)}.is-modal-visible~.modal-overlay,.saved-items-pane.is-open~.modal-overlay{opacity:1;visibility:visible}.saved-items-pane__close-btn{position:absolute;left:-18px;top:24px;opacity:0;visibility:hidden;border-radius:50%;padding:10px 14px;background:#dc143c;color:#fff;border:0;transform:scale(0);will-change:transform,opacity;transition:.3s ease;transition-delay:0}.saved-items-pane.is-open .saved-items-pane__close-btn{opacity:1;transition-delay:.4s;transform:scale(1);visibility:visible}.saved-item-tile{padding:20px;background-color:rgba(255,255,255,.06);position:relative;margin:20px 0;display:block;border-radius:4px;cursor:pointer;opacity:0;transform:translateX(50px);will-change:opacity,transform;box-shadow:0 2px 4px 0 rgba(0,0,0,.2);animation:slide-left .35s ease forwards}.saved-item-tile:nth-child(1){animation-delay:.2s}.saved-item-tile:nth-child(2){animation-delay:.25s}.saved-item-tile:nth-child(3){animation-delay:.3s}.saved-item-tile:nth-child(4){animation-delay:.35s}.saved-item-tile:nth-child(5){animation-delay:.4s}.saved-item-tile:nth-child(6){animation-delay:.45s}.saved-item-tile:nth-child(7){animation-delay:.5s}.saved-item-tile:nth-child(8){animation-delay:.55s}.saved-item-tile:nth-child(9){animation-delay:.6s}.saved-item-tile:nth-child(10){animation-delay:.65s}.saved-item-tile:nth-child(11){animation-delay:.7s}.saved-item-tile:nth-child(12){animation-delay:.75s}.saved-item-tile:nth-child(n+12){animation-delay:.8s}@keyframes slide-left{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}.saved-item-tile.selected,.saved-item-tile:hover{background:rgba(255,255,255,.1)}.saved-item-tile__btns{position:absolute;top:6px;z-index:1;right:8px;opacity:0;pointer-events:none;transition:.25s ease}.saved-item-tile.selected .saved-item-tile__btns,.saved-item-tile:hover .saved-item-tile__btns{opacity:1;pointer-events:auto}.saved-item-tile__btn{padding:7px 10px;color:rgba(255,255,255,.3);border-radius:20px;margin-left:2px;background:rgba(255,255,255,.05);text-transform:uppercase}.saved-item-tile__btn:hover{background:rgba(255,255,255,.8);color:#555}.saved-item-tile__title{pointer-events:none;font-size:1.4em;margin:0 0 1em 0;opacity:.8}.saved-item-tile__meta{pointer-events:none;opacity:.3}.saved-items-pane__container{overflow-y:scroll;max-height:calc(100vh - 90px)}.notifications-btn{position:relative}@keyframes shake{2%,22%{transform:translate3d(-1px,0,0)}20%,5%{transform:translate3d(2px,0,0)}12%,17%,7%{transform:translate3d(-4px,0,0)}10%,15%{transform:translate3d(4px,0,0)}}.notifications-btn.has-new{animation:shake 7s linear infinite;transform-origin:50% 10px}.notifications-btn__dot{position:absolute;right:1;top:-2px;background:#31fe45;border-radius:50%;width:12px;height:12px;display:none}.has-new .notifications-btn__dot{display:block}.notification{border:1px solid #f1f1f1;border-radius:5px;padding:20px;background:#f8f6f9;position:relative}.notification:not(:last-child){margin-bottom:10px}.notification li:not(:last-child){margin-bottom:10px}.notification__version{background:#ff8c00;color:#fff;padding:3px;border-radius:5px;position:absolute;top:2px;left:2px}.loader,.loader:after{border-radius:50%;width:3em;height:3em}.loader{font-size:5px;position:relative;text-indent:-9999em;border-top:1.1em solid rgba(118,57,229,.2);border-right:1.1em solid rgba(118,57,229,.2);border-bottom:1.1em solid rgba(118,57,229,.2);border-left:1.1em solid #7639e5;transform:translateZ(0);animation:load8 1.1s infinite linear}@keyframes load8{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.btn-group{position:relative;cursor:pointer}.dropdown__menu{position:absolute;top:100%;left:0;padding:0;margin:0;min-width:200px;display:block;font-size:.88rem;list-style:none;border-radius:4px;overflow:hidden;opacity:0;visibility:hidden;transition:transform .25s ease;transform:translateY(10px);z-index:5;background:#fff}.dropdown__menu>li>a{display:block;padding:6px 15px;color:#333;cursor:pointer}.dropdown__menu>li.selected>a,.dropdown__menu>li>a:hover{background:var(--color-sidebar);color:#fff}.dropdown__menu>li:not(:last-child){border-bottom:1px solid rgba(0,0,0,.05)}.dropdown__menu.is-open,.open>.dropdown__menu{opacity:1;visibility:visible;transform:translateY(0)}.alerts-container{position:fixed;will-change:transform;left:50%;top:-5px;padding:10px;background:#fff;border:1px solid #eee;color:#333;box-shadow:0 3px 5px rgba(0,0,0,.2);font-size:1rem;border-radius:3px;z-index:6;transform:translateX(-50%) translateY(-100%);transition:.3s ease}.alerts-container.is-active{transform:translateX(-50%) translateY(0)}.error-gutter{width:8px}.gutter-error-marker{width:8px;height:20px;background:red;border-radius:0;position:relative;top:0;left:1px}.gutter-error-marker:after{content:attr(data-title);background:red;color:#fff;padding:4px;opacity:0;visibility:hidden;position:absolute;top:14px;left:0;width:300px;transform:translateX(-10px);will-change:transform;transition:.2s ease}.gutter-error-marker:hover:after{opacity:1;visibility:visible;transform:translateX(0)}.count-label{color:rgba(0,0,0,.8);background:rgba(255,255,255,.53);border-radius:5px;padding:1px 6px;font-weight:700}.onboard-step{background:#f7f2f1;border:1px solid #ecdede;margin:15px;padding:20px 30px;background-color:#fff;border-radius:10px;box-shadow:0 16px 22px rgba(0,0,0,.1);flex:1;opacity:0;animation:onboard-step-show .6s ease forwards;animation-delay:.1s}.onboard-step:nth-child(2){animation-delay:.2s}.onboard-step:nth-child(3){animation-delay:.4s}.onboard-step__icon{fill:#fff2ed;stroke-width:.5px;stroke:#e79f80;width:80px;height:80px}@keyframes onboard-step-show{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.autocomplete-dropdown{border-top-left-radius:0;border-top-right-radius:0;right:0;max-height:200px;overflow-y:auto;border:1px solid rgba(0,0,0,.5);z-index:2001}.autocomplete__loader{position:absolute;right:3px;bottom:1px}@keyframes wobble{from{transform:none}15%{transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{transform:none}}.animated{animation-duration:1s;animation-fill-mode:both}.wobble{animation-name:wobble}.console{background:var(--color-bg);z-index:6;position:absolute;bottom:0;min-height:80px;height:35vh;left:0;right:0;transform:translateY(0);transition:transform .4s cubic-bezier(.76,.01,.13,.9)}.console.is-minimized{transform:translateY(calc(100% - 29px))}.console .Codemirror{height:calc(100% - 55px)}.console-exec-input{padding:5px;font-size:1.3em;flex:1;background:rgba(0,0,0,.3);color:#fff;border:0;outline:0}.console:not(.is-minimized) .code-wrap__header{cursor:ns-resize}.global-console-container{display:none;position:relative;height:35px}.is-detached-mode .console,.is-detached-mode .footer{z-index:4}.is-detached-mode .global-console-container{display:block}.kbd-shortcut__keys{background:rgba(0,0,0,.1);border-radius:3px;padding:3px 8px;margin-right:5px;display:inline-block;font-size:.9rem;font-weight:700}.kbd-shortcut__details{display:inline-block}.web-maker-with-tag{position:relative;display:inline-block}.is-extension .web-maker-with-tag:after{display:none}.social-login-btn--github{color:#fff;background:#656b6f;border-color:#656b6f}.social-login-btn--facebook{color:#fff;background:#4e62c0;border-color:#4e62c0}.social-login-btn--google{background:#fff;border:2px solid currentColor;color:inherit}body.is-logged-in .hide-on-login,body:not(.is-app) .show-when-app,body:not(.is-extension) .show-when-extension,body:not(.is-logged-in) .hide-on-logout{display:none}.onboard-selection{padding:10px;margin:0 40px;border-radius:5px;transition:.25s ease;position:relative;border:1px solid transparent}.onboard-selection:hover{cursor:pointer;transform:scale(1.15)}.onboard-selection.selected:after{content:'';position:absolute;right:-20px;bottom:40px;width:80px;height:80px;border-radius:50%;background:#fff url('data:image/svg+xml;charset=UTF-8,')}.bookmarklet{display:inline-flex;align-items:center;border:1px #aaa solid;padding:0 5px;border-style:dashed;color:#333}.help-text{font-size:.9em;color:#616465;padding-left:1em}.social-login-btn:after,.social-login-btn:before,.social-login-btn:hover:after,.social-login-btn:hover:before{visibility:hidden}.last-login-github .social-login-btn--github:after,.last-login-github .social-login-btn--github:before{visibility:visible}.last-login-facebook .social-login-btn--facebook:after,.last-login-facebook .social-login-btn--facebook:before{visibility:visible}.last-login-google .social-login-btn--google:after,.last-login-google .social-login-btn--google:before{visibility:visible}@media screen and (max-width:500px){body{font-size:70%}.main-header{overflow-x:auto}.main-header__btn-wrap{flex-shrink:0}.modal__content{padding:1em}.saved-items-pane{width:77vw;padding:10px 20px}}.cm-s-paraiso-dark.CodeMirror{background:#2f1e2e;color:#b9b6b0}.cm-s-paraiso-dark .CodeMirror-gutters{background:#2f1e2e;border-right:0}.cm-s-paraiso-dark .CodeMirror-activeline-background{background:#4d344a}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-3024-day.CodeMirror{background:#f7f7f7;color:#3a3432}.cm-s-3024-day .CodeMirror-gutters{background:#f7f7f7;border-right:0}.cm-s-3024-day .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-material.CodeMirror{background-color:#263238;color:rgba(233,237,237,1)}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e}.cm-s-material .CodeMirror-activeline-background{background:rgba(0,0,0,0)}.cm-s-dracula .CodeMirror-gutters,.cm-s-dracula.CodeMirror{background-color:#282a36!important;color:#f8f8f2!important}.cm-s-dracula .CodeMirror-activeline-background{background:rgba(255,255,255,.1)}.cm-s-blackboard.CodeMirror{background:#0c1021;color:#f8f8f8}.cm-s-blackboard .CodeMirror-gutters{background:#0c1021;border-right:0}.cm-s-blackboard .CodeMirror-activeline-background{background:#3c3636}.cm-s-midnight.CodeMirror{background:#0f192a;color:#d1edff}.cm-s-midnight .CodeMirror-gutters{background:#0f192a;border-right:1px solid}.cm-s-midnight .CodeMirror-activeline-background{background:#253540} \ No newline at end of file +:root{--color-bg:#252637;--color-sidebar:#3a2b63;--code-font-size:16px;--color-button:#0074d9}body{margin:0;padding:0;background:rgba(0,0,0,.5);background:var(--color-bg);color:rgba(255,255,255,.9);min-height:100vh;font-size:87.5%;position:relative;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif,'Segoe UI Emoji','Segoe UI Symbol'}h1{margin-top:0}a{text-decoration:none;color:#d61237;cursor:pointer}p{line-height:1.65}.hide{display:none!important}.flex{display:flex}.flex-grow{flex-grow:1}.flex-v-center{align-items:center}.flex-h-center{justify-content:center}.flex-h-end{justify-content:flex-end}.fr{float:right}.relative{position:relative}.tac{text-align:center}.tar{text-align:right}.va-m{vertical-align:middle}.full-width{width:100%}.opacity--30{opacity:.3}.opacity--70{opacity:.7}.pointer-none{pointer-events:none}.ml-1{margin-left:1rem}.ml-2{margin-left:2rem}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mb-0{margin-bottom:0}.mt-0{margin-top:0}@media screen and (max-width:500px){.block--mobile{display:block}.ml-0--mobile{margin-left:0}.hide-on-mobile{display:none!important}}hr{background:0;border:0;border-bottom:1px solid #dedede}label{cursor:pointer}[class*=hint--]:after{text-transform:none;font-weight:400;letter-spacing:.5px;font-size:14px}.line{display:block;margin-bottom:1em}.caret{display:inline-block;width:0;height:0;border:6px solid transparent;border-top-color:currentColor;position:relative;top:5px;margin-left:8px}a>svg{fill:rgba(255,255,255,.2)}input[type=number],input[type=text],select,textarea{padding:3px 5px;font-size:inherit}.hidden-select{opacity:0;position:absolute;left:0;right:0;top:0;bottom:0}.btn{display:inline-block;color:var(--color-button);font-size:inherit;border:3px solid var(--color-button);border-radius:5px;padding:9px 15px;cursor:pointer;letter-spacing:.2px;line-height:1;transition:box-shadow .2s ease}.btn--primary{background:var(--color-button) linear-gradient(180deg,rgba(0,0,0,.5) 0,transparent);color:#fff}.btn--big{padding:15px 30px;border-radius:3px}.btn-icon{display:inline-flex;align-items:center}.btn:hover{text-decoration:none;box-shadow:0 5px 5px 0 rgba(0,0,0,.25)}.btn:focus{outline-width:4px;outline-color:#b76b29;outline-style:solid;outline-offset:1px}.btn-icon>svg{width:20px;height:20px;fill:currentColor;vertical-align:middle;margin-right:8px}.btn--big>svg{width:25px;height:25px;margin-right:12px}.btn-loader{display:none}.is-loading>svg{display:none}.is-loading .btn-loader{display:block}.star:after{content:'★';color:currentColor}.show-when-selected{display:none}.selected .show-when-selected{display:inline-block}.main-container{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;flex-direction:column;overflow:hidden;transition:.1s ease .2s;will-change:filter}body:not(.light-version).overlay-visible .main-container{transition-duration:.5s;transition-delay:.4s;filter:blur(3px)}.content-wrap{height:1px;max-height:calc(100% - 70px)}.code-side,.demo-side{flex-basis:inherit;position:relative;width:50%}.layout-3 .content-wrap{flex-direction:row-reverse}.code-side{display:flex;flex-direction:column}.layout-2 .content-wrap{flex-direction:column}.layout-2 .code-side{flex-direction:row;width:auto}.layout-2 .demo-side{width:auto}.layout-5 .code-side{flex-direction:row;width:auto}.layout-5 .code-wrap{height:auto}.layout-4 .code-side{display:none}.layout-4 .code-side+.gutter{display:none}.layout-4 .demo-side{width:100%!important}.is-detached-mode .demo-side{display:none}.is-detached-mode .code-side{width:100%!important}.is-detached-mode.layout-2 .code-side{height:auto!important}.code-wrap{display:flex;flex-direction:column;flex-basis:inherit;height:33%;overflow:hidden;position:relative;background:var(--color-bg);transition:height .3s ease,width .3s ease;will-change:height}.layout-2 .code-wrap.is-minimized,.layout-5 .code-wrap.is-minimized{flex-direction:row}.is-dragging .code-wrap{transition:none}.layout-2 .code-wrap{height:auto;width:33%}.code-wrap__header{display:flex;flex-shrink:0;justify-content:space-between;align-items:center;padding:5px 10px;background:rgba(0,0,0,.2);color:#888;border-bottom:1px solid rgba(0,0,0,.3);font-weight:700;user-select:none}.code-wrap__header-label{display:inline-block;font-size:1.1em}.layout-2 .code-side .is-minimized .code-wrap__header,.layout-5 .code-side .is-minimized .code-wrap__header{writing-mode:vertical-lr;padding:10px 5px}.code-wrap__header .caret{transition:.2s ease}.is-minimized .code-wrap__header .caret{opacity:0}.code-wrap__header-btn{display:inline-block;vertical-align:top;margin-left:8px}.code-wrap__header-btn,.code-wrap__header-btn>svg{width:18px;height:18px}.code-wrap__header-right-options{position:relative;z-index:1}.code-wrap__collapse-btn:before{content:url('data:image/svg+xml;utf8,')}.is-maximized .code-wrap__collapse-btn:before{content:url('data:image/svg+xml;utf8,')}@keyframes pop-in{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.CodeMirror{width:100%;height:calc(100% - 25px);font-size:var(--code-font-size)}.layout-2 .is-minimized .Codemirror,.layout-5 .is-minimized .Codemirror{height:calc(100%)}.CodeMirror pre{font-variant-ligatures:contextual}.cm-s-monokai .CodeMirror-linenumber{color:rgba(255,255,255,.2)}.cm-s-monokai .CodeMirror-gutters,.cm-s-monokai.CodeMirror{background:var(--color-bg)}.cm-s-monokai .CodeMirror-guttermarker-subtle{opacity:.4}.cm-s-monokai .CodeMirror-activeline-background,.cm-s-monokai .CodeMirror-activeline-gutter{background:rgba(0,0,0,.1)!important}.CodeMirror-hints{font-size:var(--code-font-size);border:0;background:#1e1e2c}.CodeMirror-hint{color:#bbb;padding:2px 4px}li.CodeMirror-hint-active{background:#5b429d}#demo-frame{border:0;width:100%;height:calc(100% - 29px);position:absolute;z-index:1;background:#fff}body>#demo-frame{height:100%}.footer,.main-header{padding:5px 10px;background-color:#12131b;color:rgba(255,255,255,.45);border-top:1px solid rgba(255,255,255,.14)}.footer{z-index:6}.main-header{display:flex;flex-wrap:nowrap;border:0;border-bottom:1px solid rgba(255,255,255,.14)}.main-header__btn-wrap>a{font-size:.8em;font-weight:700;line-height:20px;height:20px;letter-spacing:.6px;color:#9297b3;border-radius:3px;margin-left:10px;padding:0 8px;border:1px solid rgba(0,0,0,.9);background:linear-gradient(180deg,rgba(0,0,0,.5) 0,rgba(255,255,255,.1) 100%);box-shadow:0 -1px 0 0 rgba(255,255,255,.15);text-transform:uppercase}.main-header__btn-wrap>a>svg{fill:#9297b3;margin-right:4px}.main-header__btn-wrap>a.is-marked>svg{fill:#dc143c}.main-header__btn-wrap>a:hover{border-color:rgba(146,151,179,.5)}.main-header__btn-wrap>a.is-loading{pointer-events:none;opacity:.4}.main-header__avatar-img,.profile-modal__avatar-img{border-radius:50%}.logo{display:inline-block;height:25px;width:48px;margin-right:5px;background:url(icon-48.png) 0 -12px;background-repeat:no-repeat;vertical-align:middle;-webkit-filter:grayscale(.9);filter:grayscale(.9);transition:.4s ease;opacity:.3;will-change:opacity,filter}.footer:hover .logo{-webkit-filter:grayscale(0);filter:grayscale(0);opacity:1}.footer__right{font-size:0;line-height:0}.footer__separator{display:inline-block;height:24px;margin:0 10px 0 20px;border-left:1px solid rgba(255,255,255,.2)}.mode-btn{margin-left:10px;display:inline-block}.footer__link:first-of-type{margin-left:5px}.footer__link{display:inline-block;margin-right:5px;position:relative;top:2px}.footer a>svg{transition:.3s ease;fill:rgba(255,255,255,.2)}.footer a:hover svg{fill:rgba(255,255,255,.45)}.mode-btn svg{width:24px;height:24px}.mode-btn.selected svg{fill:rgba(255,255,255,.45)}.gutter{background:rgba(255,255,255,.05);flex-shrink:0}.gutter-horizontal{cursor:ew-resize}.gutter-vertical{cursor:ns-resize}.item-title-input{background:0 0;border:0;color:rgba(255,255,255,.6);flex:1}.search-input{background:rgba(255,255,255,.1);padding:10px 20px;border:0;width:100%;font-size:16px;color:#fff;border-radius:4px}.modal{position:fixed;top:0;left:0;width:100vw;height:100vh;overflow-y:auto;align-items:center;display:flex;align-items:baseline;justify-content:center;z-index:2000;visibility:hidden;will-change:transform}@keyframes anim-modal-overlay{to{opacity:1;transform:translateY(0) scale(1)}}.modal__close-btn{position:absolute;right:10px;top:10px;text-transform:uppercase;font-weight:700;opacity:.8;transition:.25s ease}.modal__close-btn>svg{fill:#000;width:30px;height:30px}.modal__close-btn:hover{opacity:.7}.modal__content{background:#fdfdfd;color:#444;position:relative;border-radius:8px;opacity:0;padding:3em;font-size:1.1em;line-height:1.4;max-width:85vw;margin:2rem auto;box-sizing:border-box;overflow-y:auto;pointer-events:auto;transform:translateY(50px) scale(.95);animation:anim-modal .3s ease forwards;animation-delay:150ms}@keyframes anim-modal{to{opacity:1;transform:translateY(0) scale(1)}}@media screen and (max-width:900px){.modal__content{max-width:95vw}}.is-modal-visible{visibility:visible}.modal-overlay{position:fixed;width:100%;height:100%;visibility:hidden;top:0;left:0;z-index:5;opacity:0;will-change:opacity;background:rgba(0,0,0,.6);transition:opacity .3s}.ask-to-import-modal .modal__content,.pledge-modal .modal__content{max-width:800px}.login-modal .modal__content{overflow-y:initial}.saved-items-pane{position:fixed;right:0;top:0;bottom:0;width:450px;padding:20px 30px;z-index:6;background-color:var(--color-sidebar);transition:.3s cubic-bezier(1,.13,.21,.87);transition-property:transform;will-change:transform;transform:translateX(100%)}.saved-items-pane.is-open{transition-duration:.4s;transform:translateX(0)}.is-modal-visible~.modal-overlay,.overlay-visible .modal-overlay,.saved-items-pane.is-open~.modal-overlay{opacity:1;visibility:visible}.saved-items-pane__close-btn{position:absolute;left:-18px;top:24px;opacity:0;visibility:hidden;border-radius:50%;padding:10px 14px;background:#dc143c;color:#fff;border:0;transform:scale(0);will-change:transform,opacity;transition:.3s ease;transition-delay:0}.saved-items-pane.is-open .saved-items-pane__close-btn{opacity:1;transition-delay:.4s;transform:scale(1);visibility:visible}.saved-item-tile{padding:20px;background-color:rgba(255,255,255,.06);position:relative;margin:20px 0;display:block;border-radius:4px;cursor:pointer;opacity:0;transform:translateX(50px);will-change:opacity,transform;box-shadow:0 2px 4px 0 rgba(0,0,0,.2);animation:slide-left .35s ease forwards}.saved-item-tile:nth-child(1){animation-delay:.2s}.saved-item-tile:nth-child(2){animation-delay:.25s}.saved-item-tile:nth-child(3){animation-delay:.3s}.saved-item-tile:nth-child(4){animation-delay:.35s}.saved-item-tile:nth-child(5){animation-delay:.4s}.saved-item-tile:nth-child(6){animation-delay:.45s}.saved-item-tile:nth-child(7){animation-delay:.5s}.saved-item-tile:nth-child(8){animation-delay:.55s}.saved-item-tile:nth-child(9){animation-delay:.6s}.saved-item-tile:nth-child(10){animation-delay:.65s}.saved-item-tile:nth-child(11){animation-delay:.7s}.saved-item-tile:nth-child(12){animation-delay:.75s}.saved-item-tile:nth-child(n+12){animation-delay:.8s}@keyframes slide-left{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}.saved-item-tile.selected,.saved-item-tile:hover{background:rgba(255,255,255,.1)}.saved-item-tile__btns{position:absolute;top:6px;z-index:1;right:8px;opacity:0;pointer-events:none;transition:.25s ease}.saved-item-tile.selected .saved-item-tile__btns,.saved-item-tile:hover .saved-item-tile__btns{opacity:1;pointer-events:auto}.saved-item-tile__btn{padding:7px 10px;color:rgba(255,255,255,.3);border-radius:20px;margin-left:2px;background:rgba(255,255,255,.05);text-transform:uppercase}.saved-item-tile__btn:hover{background:rgba(255,255,255,.8);color:#555}.saved-item-tile__title{pointer-events:none;font-size:1.4em;margin:0 0 1em 0;opacity:.8}.saved-item-tile__meta{pointer-events:none;opacity:.3}.saved-items-pane__container{overflow-y:scroll;max-height:calc(100vh - 90px)}.notifications-btn{position:relative}@keyframes shake{2%,22%{transform:translate3d(-1px,0,0)}20%,5%{transform:translate3d(2px,0,0)}12%,17%,7%{transform:translate3d(-4px,0,0)}10%,15%{transform:translate3d(4px,0,0)}}.notifications-btn.has-new{animation:shake 7s linear infinite;transform-origin:50% 10px}.notifications-btn__dot{position:absolute;right:1;top:-2px;background:#31fe45;border-radius:50%;width:12px;height:12px;display:none}.has-new .notifications-btn__dot{display:block}.notification{border:1px solid #f1f1f1;border-radius:5px;padding:20px;background:#f8f6f9;position:relative}.notification:not(:last-child){margin-bottom:10px}.notification li:not(:last-child){margin-bottom:10px}.notification__version{background:#ff8c00;color:#fff;padding:3px;border-radius:5px;position:absolute;top:2px;left:2px}.loader,.loader:after{border-radius:50%;width:3em;height:3em}.loader{font-size:5px;position:relative;text-indent:-9999em;border-top:1.1em solid rgba(118,57,229,.2);border-right:1.1em solid rgba(118,57,229,.2);border-bottom:1.1em solid rgba(118,57,229,.2);border-left:1.1em solid #7639e5;transform:translateZ(0);animation:load8 1.1s infinite linear}@keyframes load8{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.btn-group{position:relative;cursor:pointer}.dropdown__menu{position:absolute;top:100%;left:0;padding:0;margin:0;min-width:200px;display:block;font-size:.88rem;list-style:none;border-radius:4px;overflow:hidden;opacity:0;visibility:hidden;transition:transform .25s ease;transform:translateY(10px);z-index:5;background:#fff}.dropdown__menu>li>a{display:block;padding:6px 15px;color:#333;cursor:pointer}.dropdown__menu>li.selected>a,.dropdown__menu>li>a:hover{background:var(--color-sidebar);color:#fff}.dropdown__menu>li:not(:last-child){border-bottom:1px solid rgba(0,0,0,.05)}.dropdown__menu.is-open,.open>.dropdown__menu{opacity:1;visibility:visible;transform:translateY(0)}.alerts-container{position:fixed;will-change:transform;left:50%;top:-5px;padding:10px;background:#fff;border:1px solid #eee;color:#333;box-shadow:0 3px 5px rgba(0,0,0,.2);font-size:1rem;border-radius:3px;z-index:6;transform:translateX(-50%) translateY(-100%);transition:.3s ease}.alerts-container.is-active{transform:translateX(-50%) translateY(0)}.error-gutter{width:8px}.gutter-error-marker{width:8px;height:20px;background:red;border-radius:0;position:relative;top:0;left:1px}.gutter-error-marker:after{content:attr(data-title);background:red;color:#fff;padding:4px;opacity:0;visibility:hidden;position:absolute;top:14px;left:0;width:300px;transform:translateX(-10px);will-change:transform;transition:.2s ease}.gutter-error-marker:hover:after{opacity:1;visibility:visible;transform:translateX(0)}.count-label{color:rgba(0,0,0,.8);background:rgba(255,255,255,.53);border-radius:5px;padding:1px 6px;font-weight:700}.onboard-step{background:#f7f2f1;border:1px solid #ecdede;margin:15px;padding:20px 30px;background-color:#fff;border-radius:10px;box-shadow:0 16px 22px rgba(0,0,0,.1);flex:1;opacity:0;animation:onboard-step-show .6s ease forwards;animation-delay:.1s}.onboard-step:nth-child(2){animation-delay:.2s}.onboard-step:nth-child(3){animation-delay:.4s}.onboard-step__icon{fill:#fff2ed;stroke-width:.5px;stroke:#e79f80;width:80px;height:80px}@keyframes onboard-step-show{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.autocomplete-dropdown{border-top-left-radius:0;border-top-right-radius:0;right:0;max-height:200px;overflow-y:auto;border:1px solid rgba(0,0,0,.5);z-index:2001}.autocomplete__loader{position:absolute;right:3px;bottom:1px}@keyframes wobble{from{transform:none}15%{transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{transform:none}}.animated{animation-duration:1s;animation-fill-mode:both}.wobble{animation-name:wobble}.console{background:var(--color-bg);z-index:6;position:absolute;bottom:0;min-height:80px;height:35vh;left:0;right:0;display:flex;flex-direction:column;transform:translateY(0);transition:transform .4s cubic-bezier(.76,.01,.13,.9)}.console.is-minimized{transform:translateY(calc(100% - 29px))}.console .CodeMirror{height:calc(100% - 30px)}.console__log{flex:1}.console-exec-input{padding:5px;font-size:1.3em;flex:1;background:rgba(0,0,0,.3);color:#fff;border:0;outline:0}.console:not(.is-minimized) .code-wrap__header{cursor:ns-resize}.global-console-container{display:none;position:relative;height:35px}.is-detached-mode .console,.is-detached-mode .footer{z-index:4}.is-detached-mode .global-console-container{display:block}.kbd-shortcut__keys{background:rgba(0,0,0,.1);border-radius:3px;padding:3px 8px;margin-right:5px;display:inline-block;font-size:.9rem;font-weight:700}.kbd-shortcut__details{display:inline-block}.web-maker-with-tag{position:relative;display:inline-block}.is-extension .web-maker-with-tag:after{display:none}.social-login-btn--github{color:#fff;background:#656b6f;border-color:#656b6f}.social-login-btn--facebook{color:#fff;background:#4e62c0;border-color:#4e62c0}.social-login-btn--google{background:#fff;border:2px solid currentColor;color:inherit}body.is-logged-in .hide-on-login,body:not(.is-app) .show-when-app,body:not(.is-extension) .show-when-extension,body:not(.is-logged-in) .hide-on-logout{display:none}.onboard-selection{padding:10px;margin:0 40px;border-radius:5px;transition:.25s ease;position:relative;border:1px solid transparent}.onboard-selection:hover{cursor:pointer;transform:scale(1.15)}.onboard-selection.selected:after{content:'';position:absolute;right:-20px;bottom:40px;width:80px;height:80px;border-radius:50%;background:#fff url('data:image/svg+xml;charset=UTF-8,')}.bookmarklet{display:inline-flex;align-items:center;border:1px #aaa solid;padding:0 5px;border-style:dashed;color:#333}.help-text{font-size:.9em;color:#616465}.social-login-btn:after,.social-login-btn:before,.social-login-btn:hover:after,.social-login-btn:hover:before{visibility:hidden}.last-login-github .social-login-btn--github:after,.last-login-github .social-login-btn--github:before{visibility:visible}.last-login-facebook .social-login-btn--facebook:after,.last-login-facebook .social-login-btn--facebook:before{visibility:visible}.last-login-google .social-login-btn--google:after,.last-login-google .social-login-btn--google:before{visibility:visible}@media screen and (max-width:500px){body{font-size:70%}.main-header{overflow-x:auto}.main-header__btn-wrap{flex-shrink:0}.modal__content{padding:1em}.saved-items-pane{width:77vw;padding:10px 20px}}.cm-s-paraiso-dark.CodeMirror{background:#2f1e2e;color:#b9b6b0}.cm-s-paraiso-dark .CodeMirror-gutters{background:#2f1e2e;border-right:0}.cm-s-paraiso-dark .CodeMirror-activeline-background{background:#4d344a}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-3024-day.CodeMirror{background:#f7f7f7;color:#3a3432}.cm-s-3024-day .CodeMirror-gutters{background:#f7f7f7;border-right:0}.cm-s-3024-day .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-material.CodeMirror{background-color:#263238;color:rgba(233,237,237,1)}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e}.cm-s-material .CodeMirror-activeline-background{background:rgba(0,0,0,0)}.cm-s-dracula .CodeMirror-gutters,.cm-s-dracula.CodeMirror{background-color:#282a36!important;color:#f8f8f2!important}.cm-s-dracula .CodeMirror-activeline-background{background:rgba(255,255,255,.1)}.cm-s-blackboard.CodeMirror{background:#0c1021;color:#f8f8f8}.cm-s-blackboard .CodeMirror-gutters{background:#0c1021;border-right:0}.cm-s-blackboard .CodeMirror-activeline-background{background:#3c3636}.cm-s-midnight.CodeMirror{background:#0f192a;color:#d1edff}.cm-s-midnight .CodeMirror-gutters{background:#0f192a;border-right:1px solid}.cm-s-midnight .CodeMirror-activeline-background{background:#253540} \ No newline at end of file diff --git a/app/vendor.js b/app/vendor.js index 9fd869c..e74a3f1 100644 --- a/app/vendor.js +++ b/app/vendor.js @@ -1 +1 @@ -(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.CodeMirror=t()})(this,function(){'use strict';function e(e){return new RegExp('(^|\\s)'+e+'(?:$|\\s)\\s*')}function t(t){for(var e=t.childNodes.length;0n||n>=t)return i+(t-s);i+=n-s,i+=o-i%o,s=n+1}}function h(e,t){for(var n=0;n=t)return o+vi(i,t-r);if(r+=a-o,r+=n-r%n,o=a+1,r>=t)return o}}function g(e){for(;Zi.length<=e;)Zi.push(f(Zi)+' ');return Zi[e]}function f(e){return e[e.length-1]}function y(e,t){for(var n=[],o=0;on?0n?-1:1;;){if(t==n)return t;var r=(t+n)/2,a=0>o?bi(r):yi(r);if(a==t)return e(a)?t:n;e(a)?n=a:t=a+o}}function I(e,t,n){var a=this;this.input=n,a.scrollbarFiller=o('div',null,'CodeMirror-scrollbar-filler'),a.scrollbarFiller.setAttribute('cm-not-content','true'),a.gutterFiller=o('div',null,'CodeMirror-gutter-filler'),a.gutterFiller.setAttribute('cm-not-content','true'),a.lineDiv=r('div',null,'CodeMirror-code'),a.selectionDiv=o('div',null,null,'position: relative; z-index: 1'),a.cursorDiv=o('div',null,'CodeMirror-cursors'),a.measure=o('div',null,'CodeMirror-measure'),a.lineMeasure=o('div',null,'CodeMirror-measure'),a.lineSpace=r('div',[a.measure,a.lineMeasure,a.selectionDiv,a.cursorDiv,a.lineDiv],null,'position: relative; outline: none');var i=r('div',[a.lineSpace],'CodeMirror-lines');a.mover=o('div',[i],null,'position: relative'),a.sizer=o('div',[a.mover],'CodeMirror-sizer'),a.sizerWidth=null,a.heightForcer=o('div',null,null,'position: absolute; height: '+Xi+'px; width: 1px;'),a.gutters=o('div',null,'CodeMirror-gutters'),a.lineGutter=null,a.scroller=o('div',[a.sizer,a.heightForcer,a.gutters],'CodeMirror-scroll'),a.scroller.setAttribute('tabIndex','-1'),a.wrapper=o('div',[a.scrollbarFiller,a.gutterFiller,a.scroller],'CodeMirror'),wi&&8>Ii&&(a.gutters.style.zIndex=-1,a.scroller.style.paddingRight=0),Ni||Si&&Fi||(a.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(a.wrapper):e(a.wrapper)),a.viewFrom=a.viewTo=t.first,a.reportedViewFrom=a.reportedViewTo=t.first,a.view=[],a.renderedView=null,a.externalMeasured=null,a.viewOffset=0,a.lastWrapHeight=a.lastWrapWidth=0,a.updateLineNumbers=null,a.nativeBarWidth=a.barHeight=a.barWidth=0,a.scrollbarsClipped=!1,a.lineNumWidth=a.lineNumInnerWidth=a.lineNumChars=null,a.alignWidgets=!1,a.cachedCharWidth=a.cachedTextHeight=a.cachedPaddingH=null,a.maxLine=null,a.maxLineLength=0,a.maxLineChanged=!1,a.wheelDX=a.wheelDY=a.wheelStartX=a.wheelStartY=null,a.shift=!1,a.selForContextMenu=null,a.activeTouch=null,n.init(a)}function N(e,t){if(t-=e.first,0>t||t>=e.size)throw new Error('There is no line '+(t+e.first)+' in the document.');for(var n=e;!n.lines;)for(var o=0;;++o){var r=n.children[o],a=r.chunkSize();if(t=e.first&&tF(e,t)?t:e}function W(e,t){return 0>F(e,t)?e:t}function H(e,t){return fi(e.first,vi(t,e.first+e.size-1))}function q(e,t){if(t.linen?M(n,N(e,n).text.length):j(t,N(e,t.line).text.length)}function j(e,t){var n=e.ch;return null==n||n>t?M(e.line,t):0>n?M(e.line,0):e}function z(e,t){for(var n=[],o=0;o=t:a.to>t);(o||(o=[])).push(new X(i,a.from,d?null:a.to))}}return o}function Z(e,t,n){var o;if(e)for(var r=0;r=t:a.to>t);if(s||a.from==t&&'bookmark'==i.type&&(!n||a.marker.insertLeft)){var d=null==a.from||(i.inclusiveLeft?a.from<=t:a.fromF(l.to,s.from)||0c)&&(i.inclusiveLeft||c)||p.push({from:l.from,to:s.from}),!(0de(o,r.marker))&&(o=r.marker);return o}function pe(e){return le(e,!0)}function ce(e){return le(e,!1)}function ue(e,t,n,o,r){var a=N(e,t),s=os&&a.markedSpans;if(s)for(var d=0,i;d=c||0>=p&&0<=c)&&(0>=p&&(i.marker.inclusiveRight&&r.inclusiveLeft?0<=F(l.to,n):0=F(l.from,o):0>F(l.from,o))))return!0}}function he(e){for(var t;t=pe(e);)e=t.find(-1,!0).line;return e}function me(e){for(var t;t=ce(e);)e=t.find(1,!0).line;return e}function ge(e){for(var t,n;t=ce(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function fe(e,t){var n=N(e,t),o=he(n);return n==o?t:O(o)}function ye(e,t){if(t>e.lastLine())return t;var n=N(e,t),o;if(!be(e,n))return t;for(;o=ce(n);)n=o.find(1,!0).line;return O(n)+1}function be(e,t){var n=os&&t.markedSpans;if(n)for(var o=void 0,r=0;rt.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}function Ee(e,t,n,o){if(!e)return o(t,n,'ltr',0);for(var r=!1,a=0,i;at||t==n&&i.to==t)&&(o(fi(i.from,t),vi(i.to,n),1==i.level?'rtl':'ltr',a),r=!0);r||o(t,n,'ltr')}function ke(e,t,n){var o;rs=null;for(var r=0,a;rt)return r;a.to==t&&(a.from!=a.to&&'before'==n?o=r:rs=r),a.from==t&&(a.from!=a.to&&'before'!=n?o=r:rs=r)}return null==o?rs:o}function Te(e,t){var n=e.order;return null==n&&(n=e.order=as(e.text,t)),n}function we(e,t){return e._handlers&&e._handlers[t]||is}function Ie(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent('on'+t,n);else{var o=e._handlers,r=o&&o[t];if(r){var a=h(r,n);-1=t.offsetWidth&&2Ii))}var r=fs?o('span','\u200B'):o('span','\xA0',null,'display: inline-block; width: 1px; margin-right: -1px');return r.setAttribute('cm-text',''),r}function Ve(e){if(null!=ys)return ys;var o=n(e,document.createTextNode('A\u062EA')),r=zi(o,0,1).getBoundingClientRect(),a=zi(o,1,2).getBoundingClientRect();return t(e),r&&r.left!=r.right&&(ys=3>a.right-r.right)}function We(e){if(null!=cs)return cs;var t=n(e,o('span','x')),r=t.getBoundingClientRect(),a=zi(t,0,1).getBoundingClientRect();return cs=1e&&a.splice(l,1,e,a[l+1],r),l+=2,i=vi(e,r);if(t)if(o.opaque)a.splice(n,l-n,e,'overlay '+t),l=n+2;else for(;ne.options.maxHighlightLength&&Ke(e.doc.mode,o.state),a=Qe(e,t,o);r&&(o.state=r),t.stateAfter=o.save(!r),t.styles=a.styles,a.classes?t.styleClasses=a.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=fi(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function Je(e,t,n){var o=e.doc,r=e.display;if(!o.mode.startState)return new vs(o,!0,t);var a=rt(e,t,n),i=a>o.first&&N(o,a-1).stateAfter,s=i?vs.fromSaved(o,i,a):new vs(o,Xe(o.mode),a);return o.iter(a,t,function(n){$e(e,n.text,s);var o=s.line;n.stateAfter=o==t-1||0==o%5||o>=r.viewFrom&&or;r++){o&&(o[0]=Ge(e,n).mode);var a=e.token(t,n);if(t.pos>t.start)return a}throw new Error('Mode '+e.name+' failed to advance stream.')}function tt(e,t,n,o){var r=e.doc,a=r.mode,i;t=q(r,t);var s=N(r,t.line),d=Je(e,t.line,n),l=new gs(s.text,e.options.tabSize,d),p;for(o&&(p=[]);(o||l.pose.options.maxHighlightLength?(s=!1,i&&$e(e,t,o,p.pos),p.pos=t.length,u=null):u=nt(et(n,p,o.state,c),a),c){var h=c[0].name;h&&(u='m-'+(u?h+' '+u:h))}if(!s||l!=u){for(;dr;--a){if(a<=o.first)return o.first;var d=N(o,a-1),l=d.stateAfter;if(l&&(!n||a+(l instanceof bs?l.lookAhead:0)<=o.modeFrontier))return a;var p=u(d.text,null,e.options.tabSize);(null==s||i>p)&&(s=a-1,i=p)}return s}function at(e,t){if(e.modeFrontier=vi(e.modeFrontier,t),!(e.highlightFrontiern;o--)if(r=N(e,o).stateAfter,r&&(!(r instanceof bs)||o+r.lookAheadIi&&(p=!0),e.pos+=t.length;else{c=document.createDocumentFragment();for(var u=0;;){l.lastIndex=u;var h=l.exec(t),f=h?h.index-u:t.length-u;if(f){var y=document.createTextNode(d.slice(u,u+f));wi&&9>Ii?c.appendChild(o('span',[y])):c.appendChild(y),e.map.push(e.pos,e.pos+f,y),e.col+=f,e.pos+=f}if(!h)break;u+=f+1;var b=void 0;if('\t'==h[0]){var v=e.cm.options.tabSize,x=v-e.col%v;b=c.appendChild(o('span',g(x),'cm-tab')),b.setAttribute('role','presentation'),b.setAttribute('cm-text','\t'),e.col+=x}else'\r'==h[0]||'\n'==h[0]?(b=c.appendChild(o('span','\r'==h[0]?'\u240D':'\u2424','cm-invalidchar')),b.setAttribute('cm-text',h[0]),e.col+=1):(b=e.cm.options.specialCharPlaceholder(h[0]),b.setAttribute('cm-text',h[0]),wi&&9>Ii?c.appendChild(o('span',[b])):c.appendChild(b),e.col+=1);e.map.push(e.pos,e.pos+1,b),e.pos++}}if(e.trailingSpace=32==d.charCodeAt(t.length-1),n||r||a||p||s){var C=n||'';r&&(C+=r),a&&(C+=a);var S=o('span',[c],C,s);return i&&(S.title=i),e.content.appendChild(S)}e.content.appendChild(c)}}function ut(e,t){if(1p&&u.from<=p));h++);if(u.to>=c)return e(n,o,r,a,s,d,l);e(n,o.slice(0,u.to-p),r,a,null,d,l),a=null,o=o.slice(u.to-p),p=u.to}}}function mt(e,t,n,o){var r=!o&&n.widgetNode;r&&e.map.push(e.pos,e.pos+t,r),!o&&e.cm.display.input.needsContentAttribute&&(!r&&(r=e.content.appendChild(document.createElement('span'))),r.setAttribute('cm-marker',n.id)),r&&(e.cm.display.input.setUneditable(r),e.content.appendChild(r)),e.pos+=t,e.trailingSpace=!1}function gt(e,t,n){var o=e.markedSpans,r=e.text,a=0;if(!o){for(var s=1;sl||k.collapsed&&E.to==l&&E.from==l)?(null!=E.to&&E.to!=l&&c>E.to&&(c=E.to,f=''),k.className&&(g+=' '+k.className),k.css&&(h=(h?h+';':'')+k.css),k.startStyle&&E.from==l&&(y+=' '+k.startStyle),k.endStyle&&E.to==c&&(C||(C=[])).push(k.endStyle,E.to),k.title&&!b&&(b=k.title),k.collapsed&&(!v||0>de(v.marker,k))&&(v=E)):E.from>l&&c>E.from&&(c=E.from)}if(C)for(var m=0;m=d)break;for(var w=vi(d,c);;){if(i){var I=l+i.length;if(!v){var N=I>w?i.slice(0,w-l):i;t.addToken(t,N,u?u+g:g,y,l+N.length==c?f:'',b,h)}if(I>=w){i=i.slice(w-l),l=w;break}l=I,y=''}i=r.slice(a,a=n[p++]),u=dt(n[p++],t.cm.options)}}}function ft(e,t,n){this.line=t,this.rest=ge(t),this.size=this.rest?O(f(this.rest))-n+1:1,this.node=this.text=null,this.hidden=be(e,t)}function yt(e,t,n){for(var o=[],r=t,a,i;rIi&&(e.node.style.zIndex=2)),e.node}function Tt(e,t){var n=t.bgClass?t.bgClass+' '+(t.line.bgClass||''):t.line.bgClass;if(n&&(n+=' CodeMirror-linebackground'),t.background)n?t.background.className=n:(t.background.parentNode.removeChild(t.background),t.background=null);else if(n){var r=kt(t);t.background=r.insertBefore(o('div',null,n),r.firstChild),e.display.input.setUneditable(t.background)}}function wt(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):lt(e,t)}function It(e,t){var n=t.text.className,o=wt(e,t);t.text==t.node&&(t.node=o.pre),t.text.parentNode.replaceChild(o.pre,t.text),t.text=o.pre,o.bgClass!=t.bgClass||o.textClass!=t.textClass?(t.bgClass=o.bgClass,t.textClass=o.textClass,Nt(e,t)):n&&(t.text.className=n)}function Nt(e,t){Tt(e,t),t.line.wrapClass?kt(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className='');var n=t.textClass?t.textClass+' '+(t.line.textClass||''):t.line.textClass;t.text.className=n||''}function At(e,t,n,r){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var a=kt(t);t.gutterBackground=o('div',null,'CodeMirror-gutter-background '+t.line.gutterClass,'left: '+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+'px; width: '+r.gutterTotalWidth+'px'),e.display.input.setUneditable(t.gutterBackground),a.insertBefore(t.gutterBackground,t.text)}var i=t.line.gutterMarkers;if(e.options.lineNumbers||i){var s=kt(t),d=t.gutter=o('div',null,'CodeMirror-gutter-wrapper','left: '+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+'px');if(e.display.input.setUneditable(d),s.insertBefore(d,t.text),t.line.gutterClass&&(d.className+=' '+t.line.gutterClass),!e.options.lineNumbers||i&&i['CodeMirror-linenumbers']||(t.lineNumber=d.appendChild(o('div',_(e.options,n),'CodeMirror-linenumber CodeMirror-gutter-elt','left: '+r.gutterLeft['CodeMirror-linenumbers']+'px; width: '+e.display.lineNumInnerWidth+'px'))),i)for(var l=0;ln)return{map:e.measure.maps[r],cache:e.measure.caches[r],before:!0}}function zt(e,t){t=he(t);var o=O(t),r=e.display.externalMeasured=new ft(e.doc,t,o);r.lineN=o;var a=r.built=lt(e,r);return r.text=a.pre,n(e.display.lineMeasure,a.pre),r}function Kt(e,t,n,o){return Qt(e,Xt(e,t),n,o)}function Gt(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&tt)&&(i=l-d,a=i-1,t>=l&&(s='right')),null!=a){if(r=e[o+2],d==l&&n==(r.insertLeft?'left':'right')&&(s=n),'left'==n&&0==a)for(;o&&e[o-2]==e[o-3]&&e[o-1].insertLeft;)r=e[(o-=3)+2],s='left';if('right'==n&&a==l-d)for(;oc;c++){for(;s&&k(t.line.text.charAt(r.coverStart+s));)--s;for(;r.coverStart+dIi&&0==s&&d==r.coverEnd-r.coverStart?a.parentNode.getBoundingClientRect():Jt(zi(a,s,d).getClientRects(),o),p.left||p.right||0==s)break;d=s,--s,l='right'}wi&&11>Ii&&(p=Zt(e.display.measure,p))}else{0Ii&&!s&&(!p||!p.left&&!p.right)){var h=a.parentNode.getClientRects()[0];p=h?{left:h.left,right:h.left+Sn(e.display),top:h.top,bottom:h.bottom}:ws}for(var m=p.top-t.rect.top,g=p.bottom-t.rect.top,f=t.view.measure.heights,y=0;y=o.text.length?(l=o.text.length,p='before'):0>=l&&(l=0,p='after'),!d)return i('before'==p?l-1:l,'before'==p);var c=ke(d,l,p),u=rs,h=s(l,c,'before'==p);return null!=u&&(h.other=s(l,u,'before'!=p)),h}function un(e,t){var n=0;t=q(e.doc,t),e.options.lineWrapping||(n=Sn(e.display)*t.ch);var o=N(e.doc,t.line),r=xe(o)+Ft(e.display);return{left:n,right:n,top:r,bottom:r+o.height}}function hn(e,t,n,o,r){var a=M(e,t,n);return a.xRel=r,o&&(a.outside=!0),a}function mn(e,t,n){var o=e.doc;if(n+=e.display.viewOffset,0>n)return hn(o.first,0,null,!0,-1);var r=P(o,n),a=o.first+o.size-1;if(r>a)return hn(o.first+o.size-1,N(o,a).text.length,null,!0,1);0>t&&(t=0);for(var i=N(o,r);;){var s=bn(e,i,r,t,n),d=ce(i),l=d&&d.find(0,!0);if(d&&(s.ch>l.from.ch||s.ch==l.from.ch&&0o},a,r),{begin:a,end:r}}function fn(e,t,n,o){n||(n=Xt(e,t));var r=dn(e,t,Qt(e,n,o),'line').top;return gn(e,t,n,r)}function yn(e,t,n,o){return!(e.bottom<=n)&&(!!(e.top>n)||(o?e.left:e.right)>t)}function bn(e,t,n,o,r){r-=xe(t);var a=Xt(e,t),i=sn(t),s=0,d=t.text.length,l=!0,p=Te(t,e.doc.direction);if(p){var c=(e.options.lineWrapping?xn:vn)(e,t,n,a,p,o,r);l=1!=c.level,s=l?c.from:c.to-1,d=l?c.to:c.from-1}var u=null,h=null,m=w(function(t){var n=Qt(e,a,t);return(n.top+=i,n.bottom+=i,!!yn(n,o,r,!1))&&(n.top<=r&&n.left<=o&&(u=t,h=n),!0)},s,d),g=!1,f,y;if(h){var b=o-h.left=x.bottom}return m=T(t.text,m,1),hn(n,m,y,g,o-f)}function vn(e,t,n,o,r,a,s){var i=w(function(d){var i=r[d],l=1!=i.level;return yn(cn(e,M(n,l?i.to:i.from,l?'before':'after'),'line',t,o),a,s,!0)},0,r.length-1),d=r[i];if(0s&&(d=r[i-1])}return d}function xn(e,t,n,o,r,a,s){var d=gn(e,t,o,s),l=d.begin,c=d.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,h=null,m=0,i;m=c||i.to<=l)){var p=1!=i.level,g=Qt(e,o,p?vi(c,i.to)-1:fi(l,i.from)).right,f=gf)&&(u=i,h=f)}return u||(u=r[r.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function Cn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Ns){Ns=o('pre');for(var r=0;49>r;++r)Ns.appendChild(document.createTextNode('x')),Ns.appendChild(o('br'));Ns.appendChild(document.createTextNode('x'))}n(e.measure,Ns);var a=Ns.offsetHeight/50;return 3=e.display.viewTo)return null;if(t-=e.display.viewFrom,0>t)return null;for(var n=e.display.view,o=0;ot)return o}function An(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Ln(e,t){void 0===t&&(t=!0);for(var n=e.doc,o={},r=o.cursors=document.createDocumentFragment(),a=o.selection=document.createDocumentFragment(),s=0;s=e.display.viewTo||i.to().linet&&(t=0),t=mi(t),r=mi(r),d.appendChild(o('div',null,'CodeMirror-selected','position: absolute; left: '+e+'px;\n top: '+t+'px; width: '+(null==n?c-e:n)+'px;\n height: '+(r-t)+'px'))}function a(t,n,o){function a(n,o){return pn(e,M(t,n),'div',d,o)}function i(t,n,o){var r=fn(e,d,null,t),i='ltr'==n==('after'==o)?'left':'right',s='after'==o?r.begin:r.end-(/\s/.test(d.text.charAt(r.end-1))?2:1);return a(s,i)[i]}var d=N(s,t),l=d.text.length,h=Te(d,s.direction),m,g;return Ee(h,n||0,null==o?l:o,function(e,t,s,d){var f='ltr'==s,y=a(e,f?'left':'right'),b=a(t-1,f?'right':'left'),v=null==n&&0==e,x=null==o&&t==l,C=0==d,S=!h||d==h.length-1;if(3>=b.top-y.top){var E=(u?v:x)&&C,k=(u?x:v)&&S,T=E?p:(f?y:b).left,w=k?c:(f?b:y).right;r(T,y.top,w-T,y.bottom)}else{var I,N,A,L;f?(I=u&&v&&C?p:y.left,N=u?c:i(e,s,'before'),A=u?p:i(t,s,'after'),L=u&&x&&S?c:b.right):(I=u?i(e,s,'before'):p,N=!u&&v&&C?c:y.right,A=!u&&x&&S?p:b.left,L=u?i(t,s,'after'):c),r(I,y.top,N-I,y.bottom),y.bottomOn(y,m))&&(m=y),0>On(b,m)&&(m=b),(!g||0>On(y,g))&&(g=y),0>On(b,g)&&(g=b)}),{start:m,end:g}}var i=e.display,s=e.doc,d=document.createDocumentFragment(),l=Ut(e.display),p=l.left,c=fi(i.sizerWidth,Wt(e)-i.sizer.offsetLeft)-l.right,u='ltr'==s.direction,h=t.from(),m=t.to();if(h.line==m.line)a(h.line,h.ch,m.ch);else{var g=N(s,h.line),f=N(s,m.line),y=he(g)==he(f),b=a(h.line,h.ch,y?g.text.length+1:null).end,v=a(m.line,y?0:null,m.ch).start;y&&(b.tope.options.cursorBlinkRate&&(t.cursorDiv.style.visibility='hidden')}}function _n(e){e.state.focused||(e.display.input.focus(),Fn(e))}function Mn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Bn(e))},100)}function Fn(t,n){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1),'nocursor'==t.options.readOnly||(!t.state.focused&&(Ne(t,'focus',t,n),t.state.focused=!0,d(t.display.wrapper,'CodeMirror-focused'),!t.curOp&&t.display.selForContextMenu!=t.doc.sel&&(t.display.input.reset(),Ni&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),Dn(t))}function Bn(t,n){t.state.delayingBlurEvent||(t.state.focused&&(Ne(t,'blur',t,n),t.state.focused=!1,ji(t.display.wrapper,'CodeMirror-focused')),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function Un(e){for(var t=e.display,n=t.lineDiv.offsetTop,o=0;oIi){var i=r.node.offsetTop+r.node.offsetHeight;a=i-n,n=i}else{var s=r.node.getBoundingClientRect();a=s.bottom-s.top}var d=r.line.height-a;if(2>a&&(a=Cn(t)),(.005d)&&(R(r.line,a),Vn(r.line),r.rest))for(var l=0;l=i&&(a=P(t,xe(N(t,d))-e.wrapper.clientHeight),i=d)}return{from:a,to:fi(i,a+1)}}function Hn(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var o=kn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,r=t.gutters.offsetWidth,a=o+'px',s=0;st.top+r.top?a=!0:t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(a=!1),null!=a&&!Di){var i=o('div','\u200B',null,'position: absolute;\n top: '+(t.top-n.viewOffset-Ft(e.display))+'px;\n height: '+(t.bottom-t.top+Vt(e)+n.barHeight)+'px;\n left: '+t.left+'px; width: '+fi(2,t.right-t.left)+'px;');e.display.lineSpace.appendChild(i),i.scrollIntoView(a),e.display.lineSpace.removeChild(i)}}}function zn(e,t,n,o){null==o&&(o=0);var r;e.options.lineWrapping||t!=n||(t=t.ch?M(t.line,'before'==t.sticky?t.ch-1:t.ch,'after'):t,n='before'==t.sticky?M(t.line,t.ch+1,'before'):t);for(var a=0;5>a;a++){var i=!1,s=cn(e,t),d=n&&n!=t?cn(e,n):s;r={left:vi(s.left,d.left),top:vi(s.top,d.top)-o,right:fi(s.left,d.left),bottom:fi(s.bottom,d.bottom)+o};var l=Gn(e,r),p=e.doc.scrollTop,c=e.doc.scrollLeft;if(null!=l.scrollTop&&(eo(e,l.scrollTop),1t.top&&(t.top=0);var r=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,a=Ht(e),i={};t.bottom-t.top>a&&(t.bottom=t.top+a);var s=e.doc.height+Bt(n),d=t.tops-o;if(t.topr+a){var p=vi(t.top,(l?s:t.bottom)-a);p!=r&&(i.scrollTop=p)}var c=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft,u=Wt(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0),h=t.right-t.left>u;return h&&(t.right=t.left+u),10>t.left?i.scrollLeft=0:t.leftu+c-3&&(i.scrollLeft=t.right+(h?0:10)-u),i}function Xn(e,t){null==t||($n(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Qn(e){$n(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Yn(e,t,n){(null!=t||null!=n)&&$n(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Jn(e,t){$n(e),e.curOp.scrollToPos=t}function $n(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var n=un(e,t.from),o=un(e,t.to);Zn(e,n,o,t.margin)}}function Zn(e,t,n,o){var r=Gn(e,{left:vi(t.left,n.left),top:vi(t.top,n.top)-o,right:fi(t.right,n.right),bottom:fi(t.bottom,n.bottom)+o});Yn(e,r.scrollLeft,r.scrollTop)}function eo(e,t){2>gi(e.doc.scrollTop-t)||(!Si&&Po(e,{top:t}),to(e,t,!0),Si&&Po(e),wo(e,100))}function to(e,t,n){t=vi(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function no(e,t,n,o){t=vi(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(n?t==e.doc.scrollLeft:2>gi(e.doc.scrollLeft-t))&&!o||(e.doc.scrollLeft=t,Hn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function oo(e){var t=e.display,n=t.gutters.offsetWidth,o=mi(e.doc.height+Bt(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:o,scrollHeight:o+Vt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}function ro(e,t){t||(t=oo(e));var n=e.display.barWidth,o=e.display.barHeight;ao(e,t);for(var r=0;4>r&&n!=e.display.barWidth||o!=e.display.barHeight;r++)n!=e.display.barWidth&&e.options.lineWrapping&&Un(e),ao(e,oo(e)),n=e.display.barWidth,o=e.display.barHeight}function ao(e,t){var n=e.display,o=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=o.right)+'px',n.sizer.style.paddingBottom=(n.barHeight=o.bottom)+'px',n.heightForcer.style.borderBottom=o.bottom+'px solid transparent',o.right&&o.bottom?(n.scrollbarFiller.style.display='block',n.scrollbarFiller.style.height=o.bottom+'px',n.scrollbarFiller.style.width=o.right+'px'):n.scrollbarFiller.style.display='',o.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display='block',n.gutterFiller.style.height=o.bottom+'px',n.gutterFiller.style.width=t.gutterWidth+'px'):n.gutterFiller.style.display=''}function io(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&ji(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Ls[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),ss(t,'mousedown',function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute('cm-not-content','true')},function(t,n){'horizontal'==n?no(e,t):eo(e,t)},e),e.display.scrollbars.addClass&&d(e.display.wrapper,e.display.scrollbars.addClass)}function so(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Rs},bt(e.curOp)}function lo(e){var t=e.curOp;xt(t,function(e){for(var t=0;t=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Os(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function uo(e){e.updatedDisplay=e.mustUpdate&&Ro(e.cm,e.update)}function ho(e){var t=e.cm,n=t.display;e.updatedDisplay&&Un(t),e.barMeasure=oo(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Kt(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=fi(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Vt(t)+t.display.barWidth),e.maxScrollLeft=fi(0,n.sizer.offsetLeft+e.adjustWidthTo-Wt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function mo(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+'px',e.maxScrollLeftt)&&(r.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=r.viewTo)os&&fe(e.doc,t)r.viewFrom?So(e):(r.viewFrom+=o,r.viewTo+=o);else if(t<=r.viewFrom&&n>=r.viewTo)So(e);else if(t<=r.viewFrom){var a=Eo(e,n,n+o,1);a?(r.view=r.view.slice(a.index),r.viewFrom=a.lineN,r.viewTo+=o):So(e)}else if(n>=r.viewTo){var i=Eo(e,t,t,-1);i?(r.view=r.view.slice(0,i.index),r.viewTo=i.lineN):So(e)}else{var s=Eo(e,t,t,-1),d=Eo(e,n,n+o,1);s&&d?(r.view=r.view.slice(0,s.index).concat(yt(e,s.lineN,d.lineN)).concat(r.view.slice(d.index)),r.viewTo+=o):So(e)}var l=r.externalMeasured;l&&(n=r.lineN&&t=o.viewTo)){var a=o.view[Nn(e,t)];if(null!=a.node){var i=a.changes||(a.changes=[]);-1==h(i,n)&&i.push(n)}}}function So(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Eo(e,t,o,r){var a=Nn(e,t),s=e.display.view,d;if(!os||o==e.doc.first+e.doc.size)return{index:a,lineN:o};for(var l=e.display.viewFrom,n=0;nr?0:s.length-1))return null;o+=r*s[a-(0>r?1:0)].size,a+=r}return{index:a,lineN:o}}function ko(e,t,n){var o=e.display,r=o.view;0==r.length||t>=o.viewTo||n<=o.viewFrom?(o.view=yt(e,t,n),o.viewFrom=t):(o.viewFrom>t?o.view=yt(e,t,o.viewFrom).concat(o.view):o.viewFromn&&(o.view=o.view.slice(0,Nn(e,n)))),o.viewTo=n}function To(e){for(var t=e.display.view,n=0,o=0,r;o=e.display.viewTo)){var n=+new Date+e.options.workTime,o=Je(e,t.highlightFrontier),r=[];t.iter(o.line,vi(t.first+t.size,e.display.viewTo+500),function(a){if(o.line>=e.display.viewFrom){var s=a.styles,d=a.text.length>e.options.maxHighlightLength?Ke(t.mode,o.state):null,l=Qe(e,a,o,!0);d&&(o.state=d),a.styles=l.styles;var p=a.styleClasses,c=l.classes;c?a.styleClasses=c:p&&(a.styleClasses=null);for(var u=!s||s.length!=a.styles.length||p!=c&&(!p||!c||p.bgClass!=c.bgClass||p.textClass!=c.textClass),h=0;!u&&hn?(wo(e,e.options.workDelay),!0):void 0}),t.highlightFrontier=o.line,t.modeFrontier=fi(t.modeFrontier,o.line),r.length&&fo(e,function(){for(var t=0;t=o.viewFrom&&n.visible.to<=o.viewTo&&(null==o.updateLineNumbers||o.updateLineNumbers>=o.viewTo)&&o.renderedView==o.view&&0==To(e))return!1;qn(e)&&(So(e),n.dims=En(e));var a=r.first+r.size,i=fi(n.visible.from-e.options.viewportMargin,r.first),s=vi(a,n.visible.to+e.options.viewportMargin);o.viewFromi-o.viewFrom&&(i=fi(r.first,o.viewFrom)),o.viewTo>s&&20>o.viewTo-s&&(s=vi(a,o.viewTo)),os&&(i=fe(e.doc,i),s=ye(e.doc,s));var d=i!=o.viewFrom||s!=o.viewTo||o.lastWrapHeight!=n.wrapperHeight||o.lastWrapWidth!=n.wrapperWidth;ko(e,i,s),o.viewOffset=xe(N(e.doc,o.viewFrom)),e.display.mover.style.top=o.viewOffset+'px';var l=To(e);if(!d&&0==l&&!n.force&&o.renderedView==o.view&&(null==o.updateLineNumbers||o.updateLineNumbers>=o.viewTo))return!1;var p=Ao(e);return 4=e.display.viewFrom&&t.visible.to<=e.display.viewTo))break;if(!Ro(e,t))break;Un(e);var r=oo(e);An(e),ro(e,r),Mo(e,r),t.force=!1}t.signal(e,'update',e),(e.display.viewFrom!=e.display.reportedViewFrom||e.display.viewTo!=e.display.reportedViewTo)&&(t.signal(e,'viewportChange',e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Po(e,t){var n=new Os(e,t);if(Ro(e,n)){Un(e),Oo(e,n);var o=oo(e);An(e),ro(e,o),Mo(e,o),n.finish()}}function Do(e,n,o){function r(t){var n=t.nextSibling;return Ni&&Bi&&e.display.currentWheelTarget==t?t.style.display='none':t.parentNode.removeChild(t),n}for(var a=e.display,s=e.options.lineNumbers,d=a.lineDiv,l=d.firstChild,p=a.view,c=a.viewFrom,u=0,i;us.clientWidth,l=s.scrollHeight>s.clientHeight;if(o&&d||r&&l){if(r&&Bi&&Ni)outer:for(var p=n.target,c=a.view;p!=s;p=p.parentNode)for(var u=0;ui?h=fi(0,h+i-50):m=vi(t.doc.height,m+i+50),Po(t,{top:h,bottom:m})}20>Ps&&(null==a.wheelStartX?(a.wheelStartX=s.scrollLeft,a.wheelStartY=s.scrollTop,a.wheelDX=o,a.wheelDY=r,setTimeout(function(){if(null!=a.wheelStartX){var e=s.scrollLeft-a.wheelStartX,t=s.scrollTop-a.wheelStartY,n=t&&a.wheelDY&&t/a.wheelDY||e&&a.wheelDX&&e/a.wheelDX;a.wheelStartX=a.wheelStartY=null,n&&(Ds=(Ds*Ps+n)/(Ps+1),++Ps)}},200)):(a.wheelDX+=o,a.wheelDY+=r))}}function Ho(e,t){var n=e[t];e.sort(function(e,t){return F(e.from(),t.from())}),t=h(e,n);for(var o=1;oF(e,t.from))return e;if(0>=F(e,t.to))return jo(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,o=e.ch;return e.line==t.to.line&&(o+=jo(t).ch-t.to.ch),M(n,o)}function Ko(e,t){for(var n=[],o=0,r;oF(p.head,p.anchor);o[s]=new Ms(c?l:d,c?d:l)}else o[s]=new Ms(d,d)}return new _s(o,e.sel.primIndex)}function Qo(e){e.doc.mode=je(e.options,e.doc.modeOption),Yo(e)}function Yo(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,wo(e,100),e.state.modeGen++,e.curOp&&xo(e)}function Jo(e,t){return 0==t.from.ch&&0==t.to.ch&&''==f(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function $o(e,t,o,n){function r(e){return o?o[e]:null}function a(e,o,r){it(e,o,r,n),Ct(e,'change',e,t)}function i(e,t){for(var o=[],a=e;aa-(e.cm?e.cm.options.historyEventDelay:500)||'*'==t.origin.charAt(0)))&&(i=ir(r,r.lastOp==o)))s=f(i.changes),0==F(t.from,t.to)&&0==F(t.from,s.to)?s.to=jo(t):i.changes.push(rr(e,t));else{var d=f(r.done);for(d&&d.ranges||pr(e.sel,r.done),i={changes:[rr(e,t)],generation:r.generation},r.done.push(i);r.done.length>r.undoDepth;)r.done.shift(),r.done[0].ranges||r.done.shift()}r.done.push(n),r.generation=++r.maxGeneration,r.lastModTime=r.lastSelTime=a,r.lastOp=r.lastSelOp=o,r.lastOrigin=r.lastSelOrigin=t.origin,s||Ne(e,'historyAdded')}function dr(e,t,n,o){var r=t.charAt(0);return'*'==r||'+'==r&&n.ranges.length==o.ranges.length&&n.somethingSelected()==o.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function lr(e,t,n,o){var r=e.history,a=o&&o.origin;n==r.lastSelOp||a&&r.lastSelOrigin==a&&(r.lastModTime==r.lastSelTime&&r.lastOrigin==a||dr(e,a,f(r.done),t))?r.done[r.done.length-1]=t:pr(t,r.done),r.lastSelTime=+new Date,r.lastSelOrigin=a,r.lastSelOp=n,o&&!1!==o.clearRedo&&ar(r.undone)}function pr(e,t){var n=f(t);n&&n.ranges&&n.equals(e)||t.push(e)}function cr(e,t,o,r){var a=t['spans_'+e.id],i=0;e.iter(fi(e.first,o),vi(e.first+e.size,r),function(n){n.markedSpans&&((a||(a=t['spans_'+e.id]={}))[i]=n.markedSpans),++i})}function ur(e){if(!e)return null;for(var t=0,n;tF(t,r);a==0>F(n,r)?a!=0>F(t,n)&&(t=n):(r=t,t=n)}return new Ms(r,t)}return new Ms(n||t,t)}function yr(e,t,n,o,r){null==r&&(r=e.cm&&(e.cm.display.shift||e.extend)),Er(e,new _s([fr(e.sel.primary(),t,n,r)],0),o)}function br(e,t,n){for(var o=[],r=e.cm&&(e.cm.display.shift||e.extend),a=0;aF(t.primary().head,e.sel.primary().head)?-1:1);Tr(e,Ir(e,t,o,!0)),!(n&&!1===n.scroll)&&e.cm&&Qn(e.cm)}function Tr(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Le(e.cm)),Ct(e,'cursorActivity',e))}function wr(e){Tr(e,Ir(e,e.sel,null,!1))}function Ir(e,t,n,o){for(var r=0,a;r=t.ch:i.to>t.ch))){if(r&&(Ne(d,'beforeCursorEnter'),d.explicitlyCleared))if(!a.markedSpans)break;else{--s;continue}if(!d.atomic)continue;if(n){var l=d.find(0>o?1:-1),p=void 0;if((0>o?d.inclusiveRight:d.inclusiveLeft)&&(l=Lr(e,l,-o,l&&l.line==t.line?a:null)),l&&l.line==t.line&&(p=F(l,n))&&(0>o?0>p:0o?-1:1);return(0>o?d.inclusiveLeft:d.inclusiveRight)&&(c=Lr(e,c,o,c.line==t.line?a:null)),c?Nr(e,c,t,o,r):null}}return t}function Ar(e,t,n,o,r){var a=o||1,i=Nr(e,t,n,a,r)||!r&&Nr(e,t,n,a,!0)||Nr(e,t,n,-a,r)||!r&&Nr(e,t,n,-a,!0);return i?i:(e.cantEdit=!0,M(e.first,0))}function Lr(e,t,n,o){return 0>n&&0==t.ch?t.line>e.first?q(e,M(t.line-1)):null:0e.lastLine())){if(t.from.linea&&(t={from:t.from,to:M(a,N(e,a).text.length),text:[t.text[0]],origin:t.origin}),t.removed=A(e,t.from,t.to),n||(n=Ko(e,t)),e.cm?Br(e.cm,t,o):$o(e,t,o),kr(e,n,Yi)}}function Br(e,t,n){var o=e.doc,r=e.display,a=t.from,i=t.to,s=!1,d=a.line;e.options.lineWrapping||(d=O(he(N(o,a.line))),o.iter(d,i.line+1,function(e){if(e==r.maxLine)return s=!0,!0})),-1r.maxLineLength&&(r.maxLine=e,r.maxLineLength=t,r.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),at(o,a.line),wo(e,400);var l=t.text.length-(i.line-a.line)-1;t.full?xo(e):a.line!=i.line||1!=t.text.length||Jo(e.doc,t)?xo(e,a.line,i.line+1,l):Co(e,a.line,'text');var p=Re(e,'changes'),c=Re(e,'change');if(c||p){var u={from:a,to:i,text:t.text,removed:t.removed,origin:t.origin};c&&Ct(e,'change',e,u),p&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(u)}e.display.selForContextMenu=null}function Ur(e,t,n,o,r){if(o||(o=n),0>F(o,n)){var a;a=[o,n],n=a[0],o=a[1],a}'string'==typeof t&&(t=e.splitLines(t)),Pr(e,{from:n,to:o,text:t,origin:r})}function Vr(e,t,n,o){n+new Date-qs))return void Me(n);if(!(Ae(t,n)||Mt(t.display,n))&&(n.dataTransfer.setData('Text',t.getSelection()),n.dataTransfer.effectAllowed='copyMove',n.dataTransfer.setDragImage&&!Oi)){var e=o('img',null,null,'position: fixed; left: 0; top: 0;');e.src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==',Ri&&(e.width=e.height=1,t.display.wrapper.appendChild(e),e._top=e.offsetTop),n.dataTransfer.setDragImage(e,0,0),Ri&&e.parentNode.removeChild(e)}}function ta(t,r){var e=In(t,r);if(e){var a=document.createDocumentFragment();Rn(t,e,a),t.display.dragCursor||(t.display.dragCursor=o('div',null,'CodeMirror-cursors CodeMirror-dragcursors'),t.display.lineSpace.insertBefore(t.display.dragCursor,t.display.cursorDiv)),n(t.display.dragCursor,a)}}function na(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function oa(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName('CodeMirror'),n=0,o;n=F(a.from,f(o).to);){var i=o.pop();if(0>F(i.from,a.from)){a.from=i.from;break}}o.push(a)}fo(e,function(){for(var t=o.length-1;0<=t;t--)Ur(e.doc,'',o[t].from,o[t].to,'+delete');Qn(e)})}function ga(e,t,n){var o=T(e.text,t+n,n);return 0>o||o>e.text.length?null:o}function fa(e,t,n){var o=ga(e,t.ch,n);return null==o?null:new M(t.line,o,0>n?'after':'before')}function ya(e,t,n,o,r){if(e){var a=Te(n,t.doc.direction);if(a){var i=0>r?f(a):a[0],s=0>r==(1==i.level),d=s?'after':'before',l;if(0r?n.text.length-1:0;var c=Qt(t,p,l).top;l=w(function(e){return Qt(t,p,e).top==c},0>r==(1==i.level)?i.from:i.to-1,l),'before'==d&&(l=ga(n,l,1))}else l=0>r?i.to:i.from;return new M(o,l,d)}}return new M(o,0>r?n.text.length:0,0>r?'before':'after')}function ba(e,t,n,o){var r=Te(t,e.doc.direction);if(!r)return fa(t,n,o);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky='before'):0>=n.ch&&(n.ch=0,n.sticky='after');var a=ke(r,n.ch,n.sticky),i=r[a];if('ltr'==e.doc.direction&&0==i.level%2&&(0n.ch:i.fromo,u=s(n,c?1:-1);if(null!=u&&(c?u<=i.to&&u<=l.end:u>=i.from&&u>=l.begin)){var h=c?'before':'after';return new M(n.line,u,h)}}var m=function(e,t,o){for(var a=function(e,t){return t?new M(n.line,s(e,1),'before'):new M(n.line,e,'after')};0<=e&&eIi&&27==t.keyCode&&(t.returnValue=!1);var n=t.keyCode;e.display.shift=16==n||t.shiftKey;var o=wa(e,t);Ri&&(Js=o?n:null,!o&&88==n&&!ps&&(Bi?t.metaKey:t.ctrlKey)&&e.replaceSelection('',null,'cut')),18!=n||/\bCodeMirror-crosshair\b/.test(e.display.lineDiv.className)||Aa(e)}}function Aa(e){function t(o){18!=o.keyCode&&o.altKey||(ji(n,'CodeMirror-crosshair'),Ie(document,'keyup',t),Ie(document,'mouseover',t))}var n=e.display.lineDiv;d(n,'CodeMirror-crosshair'),ss(document,'keyup',t),ss(document,'mouseover',t)}function La(t){16==t.keyCode&&(this.doc.sel.shift=!1),Ae(this,t)}function Ra(t){var e=this;if(!(Mt(e.display,t)||Ae(e,t)||t.ctrlKey&&!t.altKey||Bi&&t.metaKey)){var n=t.keyCode,o=t.charCode;if(Ri&&n==Js)return Js=null,void Pe(t);if(!(Ri&&(!t.which||10>t.which)&&wa(e,t))){var r=hi(null==o?n:o);'\b'==r||Ia(e,t,r)||e.display.input.onKeyPress(t)}}}function Oa(e,t){var n=+new Date;return od&&od.compare(n,e,t)?(nd=od=null,'triple'):nd&&nd.compare(n,e,t)?(od=new $s(n,e,t),nd=null,'double'):(nd=new $s(n,e,t),od=null,'single')}function Pa(t){var e=this,n=e.display;if(!(Ae(e,t)||n.activeTouch&&n.input.supportsTouch())){if(n.input.ensurePolled(),n.shift=t.shiftKey,Mt(n,t))return void(Ni||(n.scroller.draggable=!1,setTimeout(function(){return n.scroller.draggable=!0},100)));if(!Ha(e,t)){var o=In(e,t),r=Be(t),a=o?Oa(o,r):'single';window.focus(),1==r&&e.state.selectingText&&e.state.selectingText(t),o&&Da(e,r,o,a,t)||(1==r?o?Ma(e,o,a,t):Fe(t)==n.scroller&&Pe(t):2==r?(o&&yr(e.doc,o),setTimeout(function(){return n.input.focus()},20)):3==r&&(qi?qa(e,t):Mn(e)))}}}function Da(e,t,n,o,r){var a='Click';return'double'==o?a='Double'+a:'triple'==o&&(a='Triple'+a),a=(1==t?'Left':2==t?'Middle':'Right')+a,ka(e,ca(a,r),r,function(t){if('string'==typeof t&&(t=Qs[t]),!t)return!1;var o=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),o=t(e,n)!=Qi}finally{e.state.suppressEdits=!1}return o})}function _a(e,t,n){var o=e.getOption('configureMouse'),r=o?o(e,t,n):{};if(null==r.unit){var a=Ui?n.shiftKey&&n.metaKey:n.altKey;r.unit=a?'rectangle':'single'==t?'char':'double'==t?'word':'line'}return(null==r.extend||e.doc.extend)&&(r.extend=e.doc.extend||n.shiftKey),null==r.addNew&&(r.addNew=Bi?n.metaKey:n.ctrlKey),null==r.moveOnDrag&&(r.moveOnDrag=Bi?!n.altKey:!n.ctrlKey),r}function Ma(e,t,n,o){wi?setTimeout(p(_n,e),0):e.curOp.focus=s();var r=_a(e,n,o),a=e.doc.sel,i;e.options.dragDrop&&on&&!e.isReadOnly()&&'single'==n&&-1<(i=a.contains(t))&&(0>F((i=a.ranges[i]).from(),t)||0t.xRel)?Fa(e,o,t,r):Ua(e,o,t,r)}function Fa(t,e,n,o){var r=t.display,a=!1,i=yo(t,function(l){Ni&&(r.scroller.draggable=!1),t.state.draggingText=!1,Ie(r.wrapper.ownerDocument,'mouseup',i),Ie(r.wrapper.ownerDocument,'mousemove',s),Ie(r.scroller,'dragstart',d),Ie(r.scroller,'drop',i),a||(Pe(l),!o.addNew&&yr(t.doc,n,null,null,o.extend),Ni||wi&&9==Ii?setTimeout(function(){r.wrapper.ownerDocument.body.focus(),r.input.focus()},20):r.input.focus())}),s=function(t){a=a||10<=gi(e.clientX-t.clientX)+gi(e.clientY-t.clientY)},d=function(){return a=!0};Ni&&(r.scroller.draggable=!0),t.state.draggingText=i,i.copy=!o.moveOnDrag,r.scroller.dragDrop&&r.scroller.dragDrop(),ss(r.wrapper.ownerDocument,'mouseup',i),ss(r.wrapper.ownerDocument,'mousemove',s),ss(r.scroller,'dragstart',d),ss(r.scroller,'drop',i),Mn(t),setTimeout(function(){return r.input.focus()},20)}function Ba(e,t,n){if('char'==n)return new Ms(t,t);if('word'==n)return e.findWordAt(t);if('line'==n)return new Ms(M(t.line,0),q(e.doc,M(t.line+1,0)));var o=n(e,t);return new Ms(o.from,o.to)}function Ua(t,e,n,o){function r(e){if(0!=F(y,e))if(y=e,'rectangle'==o.unit){for(var r=[],a=t.options.tabSize,i=u(N(l,n.line).text,n.ch,a),s=u(N(l,e.line).text,e.ch,a),d=vi(i,s),c=fi(i,s),f=vi(n.line,e.line),b=vi(t.lastLine(),fi(n.line,e.line));f<=b;f++){var v=N(l,f).text,x=m(v,d,a);d==c?r.push(new Ms(M(f,x),M(f,x))):v.length>x&&r.push(new Ms(M(f,x),M(f,m(v,c,a))))}r.length||r.push(new Ms(n,n)),Er(l,Ho(p.ranges.slice(0,g).concat(r),g),{origin:'*mouse',scroll:!1}),t.scrollIntoView(e)}else{var C=h,S=Ba(t,e,o.unit),E=C.anchor,k;0=p.to||i.lineb.bottom?20:0;c&&setTimeout(yo(t,function(){v!=e||(d.scroller.scrollTop+=c,a(n))}),50)}}function i(n){t.state.selectingText=!1,v=Infinity,Pe(n),d.input.focus(),Ie(d.wrapper.ownerDocument,'mousemove',x),Ie(d.wrapper.ownerDocument,'mouseup',C),l.history.lastSelOrigin=null}var d=t.display,l=t.doc;Pe(e);var p=l.sel,c=p.ranges,h,g;if(o.addNew&&!o.extend?(g=l.sel.contains(n),h=-1c:0=yi(t.display.gutters.getBoundingClientRect().right))return!1;o&&Pe(n);var s=t.display,d=s.lineDiv.getBoundingClientRect();if(a>d.bottom||!Re(t,e))return _e(n);a-=d.top-s.viewOffset;for(var l=0,i;l=r){var p=P(t.doc,a),c=t.options.gutters[l];return Ne(t,e,t,p,c,n),_e(n)}}function Ha(t,n){return Wa(t,n,'gutterClick',!0)}function qa(t,n){Mt(t.display,n)||ja(t,n)||Ae(t,n,'contextmenu')||t.display.input.onContextMenu(n)}function ja(t,n){return!!Re(t,'gutterContextMenu')&&Wa(t,n,'gutterContextMenu',!1)}function za(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,'')+e.options.theme.replace(/(^|\s)\s*/g,' cm-s-'),nn(e)}function Ka(e){Fo(e),xo(e),Hn(e)}function Ga(e,t,n){if(!t!=!(n&&n!=Zs)){var o=e.display.dragFunctions,r=t?ss:Ie;r(e.display.scroller,'dragstart',o.start),r(e.display.scroller,'dragenter',o.enter),r(e.display.scroller,'dragover',o.over),r(e.display.scroller,'dragleave',o.leave),r(e.display.scroller,'drop',o.drop)}}function Xa(e){e.options.lineWrapping?(d(e.display.wrapper,'CodeMirror-wrap'),e.display.sizer.style.minWidth='',e.display.sizerWidth=null):(ji(e.display.wrapper,'CodeMirror-wrap'),Se(e)),wn(e),xo(e),nn(e),setTimeout(function(){return ro(e)},100)}function Qa(e,t){var n=this;if(!(this instanceof Qa))return new Qa(e,t);this.options=t=t?c(t):{},c(ed,t,!1),Bo(t);var o=t.value;'string'==typeof o&&(o=new Hs(o,t.mode,null,t.lineSeparator,t.direction)),this.doc=o;var r=new Qa.inputStyles[t.inputStyle](this),a=this.display=new I(e,o,r);for(var s in a.wrapper.CodeMirror=this,Fo(this),za(this),t.lineWrapping&&(this.display.wrapper.className+=' CodeMirror-wrap'),io(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new Gi,keySeq:null,specialChars:null},t.autofocus&&!Fi&&a.input.focus(),wi&&11>Ii&&setTimeout(function(){return n.display.input.reset(!0)},20),Ya(this),ra(),so(this),this.curOp.forceUpdate=!0,er(this,o),t.autofocus&&!Fi||this.hasFocus()?setTimeout(p(Fn,this),20):Bn(this),td)td.hasOwnProperty(s)&&td[s](n,t[s],Zs);qn(this),t.finishInit&&t.finishInit(this);for(var d=0;d=e.radiusX&&1>=e.radiusY}function r(e,t){if(null==t.left)return!0;var n=t.left-e.left,o=t.top-e.top;return 400Ii?ss(a.scroller,'dblclick',yo(t,function(n){if(!Ae(t,n)){var e=In(t,n);if(!(!e||Ha(t,n)||Mt(t.display,n))){Pe(n);var o=t.findWordAt(e);yr(t.doc,o.anchor,o.head)}}})):ss(a.scroller,'dblclick',function(n){return Ae(t,n)||Pe(n)}),qi||ss(a.scroller,'contextmenu',function(n){return qa(t,n)});var i={end:0},s;ss(a.scroller,'touchstart',function(n){if(!Ae(t,n)&&!o(n)&&!Ha(t,n)){a.input.ensurePolled(),clearTimeout(s);var e=+new Date;a.activeTouch={start:e,moved:!1,prev:300>=e-i.end?i:null},1==n.touches.length&&(a.activeTouch.left=n.touches[0].pageX,a.activeTouch.top=n.touches[0].pageY)}}),ss(a.scroller,'touchmove',function(){a.activeTouch&&(a.activeTouch.moved=!0)}),ss(a.scroller,'touchend',function(o){var e=a.activeTouch;if(e&&!Mt(a,o)&&null!=e.left&&!e.moved&&300>new Date-e.start){var i=t.coordsChar(a.activeTouch,'page'),s;s=!e.prev||r(e,e.prev)?new Ms(i,i):!e.prev.prev||r(e,e.prev.prev)?t.findWordAt(i):new Ms(M(i.line,0),q(t.doc,M(i.line+1,0))),t.setSelection(s.anchor,s.head),t.focus(),Pe(o)}n()}),ss(a.scroller,'touchcancel',n),ss(a.scroller,'scroll',function(){a.scroller.clientHeight&&(eo(t,a.scroller.scrollTop),no(t,a.scroller.scrollLeft,!0),Ne(t,'scroll',t))}),ss(a.scroller,'mousewheel',function(n){return Wo(t,n)}),ss(a.scroller,'DOMMouseScroll',function(n){return Wo(t,n)}),ss(a.wrapper,'scroll',function(){return a.wrapper.scrollTop=a.wrapper.scrollLeft=0}),a.dragFunctions={enter:function(n){Ae(t,n)||Me(n)},over:function(n){Ae(t,n)||(ta(t,n),Me(n))},start:function(n){return ea(t,n)},drop:yo(t,Zr),leave:function(n){Ae(t,n)||na(t)}};var e=a.input.getField();ss(e,'keyup',function(n){return La.call(t,n)}),ss(e,'keydown',yo(t,Na)),ss(e,'keypress',yo(t,Ra)),ss(e,'focus',function(n){return Fn(t,n)}),ss(e,'blur',function(n){return Bn(t,n)})}function Ja(e,t,n,o){var r=e.doc,a;null==n&&(n='add'),'smart'==n&&(r.mode.indent?a=Je(e,t).state:n='prev');var s=e.options.tabSize,d=N(r,t),l=u(d.text,null,s);d.stateAfter&&(d.stateAfter=null);var p=d.text.match(/^\s*/)[0],c;if(!o&&!/\S/.test(d.text))c=0,n='not';else if('smart'==n&&(c=r.mode.indent(a,d.text.slice(p.length),d.text),c==Qi||150r.first?c=u(N(r,t-1).text,null,s):c=0:'add'==n?c=l+e.options.indentUnit:'subtract'==n?c=l-e.options.indentUnit:'number'==typeof n&&(c=l+n),c=fi(0,c);var h='',m=0;if(e.options.indentWithTabs)for(var f=yi(c/s);f;--f)m+=s,h+='\t';if(m=e.first+e.size?!1:(t=new M(o,t.ch,t.sticky),p=N(e,o))}function i(o){var i;if(i=r?ba(e.cm,p,t,n):fa(p,t,n),null!=i)t=i;else if(!o&&a())t=ya(r,e.cm,p,t.line,n);else return!1;return!0}var s=t,d=n,p=N(e,t.line);if('char'==o)i();else if('column'==o)i(!0);else if('word'==o||'group'==o)for(var l=null,c='group'==o,u=e.cm&&e.cm.getHelper(t,'wordChars'),h=!0;;h=!1){if(0>n&&!i(!h))break;var m=p.text.charAt(t.ch)||'\n',g=S(m,u)?'w':c&&'\n'==m?'n':!c||/\s/.test(m)?null:'p';if(!c||h||g||(g='s'),l&&l!=g){0>n&&(n=1,i(),t.sticky='after');break}if(g&&(l=g),0n?0>=i:i>=r.height){l.hitSide=!0;break}i+=5*n}return l}function si(e,t){var n=Gt(e,t.line);if(!n||n.hidden)return null;var o=N(e.doc,t.line),r=jt(n,o,t.line),a=Te(o,e.doc.direction),i='left';if(a){var s=ke(a,t.ch);i=s%2?'right':'left'}var d=Yt(r.map,t.ch,i);return d.offset='right'==d.collapse?d.end:d.start,d}function di(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function li(e,t){return t&&(e.bad=!0),e}function pi(e,t,n,o,r){function a(e){return function(t){return t.id==e}}function s(){p&&(i+=c,p=!1)}function d(e){e&&(s(),i+=e)}function l(t){if(1==t.nodeType){var n=t.getAttribute('cm-text');if(null!=n)return void d(n||t.textContent.replace(/\u200b/g,''));var u=t.getAttribute('cm-marker'),h;if(u){var m=e.findMarks(M(o,0),M(r+1,0),a(+u));return void(m.length&&(h=m[0].find(0))&&d(A(e.doc,h.from,h.to).join(c)))}if('false'==t.getAttribute('contenteditable'))return;var g=/^(pre|div|p)$/i.test(t.nodeName);g&&s();for(var f=0;fr?p.map:c[r];for(var i=0,s;ir?e.line:e.rest[r]),l=a[i]+o;return(0>o||s!=t)&&(l=a[i+(o?1:0)]),M(d,l)}}}var r=e.text.firstChild,i=!1;if(!t||!a(r,t))return li(M(O(e.line),0),!0);if(t==r&&(i=!0,t=r.childNodes[n],n=0,!t)){var s=e.rest?f(e.rest):e.line;return li(M(O(s),s.text.length),i)}var d=3==t.nodeType?t:null,l=t;for(d||1!=t.childNodes.length||3!=t.firstChild.nodeType||(d=t.firstChild,n&&(n=d.nodeValue.length));l.parentNode!=r;)l=l.parentNode;var p=e.measure,c=p.maps,u=o(d,l,n);if(u)return li(u,i);for(var h=l.nextSibling,m=d?d.nodeValue.length-n:0;h;h=h.nextSibling){if(u=o(h,h.firstChild,0),u)return li(M(u.line,u.ch-m),i);m+=h.textContent.length}for(var g=l.previousSibling,y=n;g;g=g.previousSibling){if(u=o(g,g.firstChild,-1),u)return li(M(u.line,u.ch+y),i);y+=g.textContent.length}}var hi=String.fromCharCode,mi=Math.round,gi=Math.abs,fi=Math.max,yi=Math.floor,bi=Math.ceil,vi=Math.min,xi=navigator.userAgent,Ci=navigator.platform,Si=/gecko\/\d/i.test(xi),Ei=/MSIE \d/.test(xi),ki=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(xi),Ti=/Edge\/(\d+)/.exec(xi),wi=Ei||ki||Ti,Ii=wi&&(Ei?document.documentMode||6:+(Ti||ki)[1]),Ni=!Ti&&/WebKit\//.test(xi),Ai=Ni&&/Qt\/\d+\.\d+/.test(xi),Li=!Ti&&/Chrome\//.test(xi),Ri=/Opera\//.test(xi),Oi=/Apple Computer/.test(navigator.vendor),Pi=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(xi),Di=/PhantomJS/.test(xi),_i=!Ti&&/AppleWebKit/.test(xi)&&/Mobile\/\w+/.test(xi),Mi=/Android/.test(xi),Fi=_i||Mi||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(xi),Bi=_i||/Mac/.test(Ci),Ui=/\bCrOS\b/.test(xi),Vi=/win/i.test(Ci),Wi=Ri&&xi.match(/Version\/(\d*\.\d*)/);Wi&&(Wi=+Wi[1]),Wi&&15<=Wi&&(Ri=!1,Ni=!0);var Hi=Bi&&(Ai||Ri&&(null==Wi||12.11>Wi)),qi=Si||wi&&9<=Ii,ji=function(t,n){var o=t.className,r=e(n).exec(o);if(r){var a=o.slice(r.index+r[0].length);t.className=o.slice(0,r.index)+(a?r[1]+a:'')}},zi;zi=document.createRange?function(e,t,n,o){var a=document.createRange();return a.setEnd(o||e,n),a.setStart(e,t),a}:function(e,t,n){var o=document.body.createTextRange();try{o.moveToElementText(e.parentNode)}catch(t){return o}return o.collapse(!0),o.moveEnd('character',n),o.moveStart('character',t),o};var Ki=function(e){e.select()};_i?Ki=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:wi&&(Ki=function(e){try{e.select()}catch(e){}});var Gi=function(){this.id=null};Gi.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Xi=30,Qi={toString:function(){return'CodeMirror.Pass'}},Yi={scroll:!1},Ji={origin:'*mouse'},$i={origin:'+move'},Zi=[''],es=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ts=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,ns=!1,os=!1,rs=null,as=function(){function e(e){return 247>=e?n.charAt(e):1424<=e&&1524>=e?'R':1536<=e&&1785>=e?o.charAt(e-1536):1774<=e&&2220>=e?'r':8192<=e&&8203>=e?'w':8204==e?'b':'L'}function t(e,t,n){this.level=e,this.from=t,this.to=n}var n='bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN',o='nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111',r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,a=/[stwN]/,i=/[LRr]/,s=/[Lb1n]/,d=/[1n]/;return function(n,o){var l='ltr'==o?'L':'R';if(0==n.length||'ltr'==o&&!r.test(n))return!1;for(var p=n.length,c=[],u=0;uIi)return!1;var e=o('div');return'draggable'in e||'dragDrop'in e}(),ds=3=='\n\nb'.split(/\n/).length?function(e){return e.split(/\r\n?|\n/)}:function(e){for(var t=0,n=[],o=e.length,r;t<=o;){r=e.indexOf('\n',t),-1==r&&(r=e.length);var a=e.slice(t,'\r'==e.charAt(r-1)?r-1:r),i=a.indexOf('\r');-1==i?(n.push(a),t=r+1):(n.push(a.slice(0,i)),t+=i+1)}return n},ls=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(t){}return t&&t.parentElement()==e&&0!=t.compareEndPoints('StartToEnd',t)},ps=function(){var t=o('div');return!!('oncopy'in t)||(t.setAttribute('oncopy','return;'),'function'==typeof t.oncopy)}(),cs=null,us={},hs={},ms={},gs=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n},fs,ys;gs.prototype.eol=function(){return this.pos>=this.string.length},gs.prototype.sol=function(){return this.pos==this.lineStart},gs.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},gs.prototype.next=function(){if(this.post},gs.prototype.eatSpace=function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},gs.prototype.skipToEnd=function(){this.pos=this.string.length},gs.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(-1this.maxLookAhead&&(this.maxLookAhead=e),t},vs.prototype.baseToken=function(e){var t=this;if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)t.baseTokenPos+=2;var n=this.baseTokens[this.baseTokenPos+1];return{type:n&&n.replace(/( |^)overlay .*/,''),size:this.baseTokens[this.baseTokenPos]-e}},vs.prototype.nextLine=function(){this.line++,0Ii&&(this.horiz.style.minHeight=this.vert.style.minWidth='18px')},Ns;Is.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,o=e.nativeBarWidth;if(n){this.vert.style.display='block',this.vert.style.bottom=t?o+'px':'0';var r=e.viewHeight-(t?o:0);this.vert.firstChild.style.height=fi(0,e.scrollHeight-e.clientHeight+r)+'px'}else this.vert.style.display='',this.vert.firstChild.style.height='0';if(t){this.horiz.style.display='block',this.horiz.style.right=n?o+'px':'0',this.horiz.style.left=e.barLeft+'px';var a=e.viewWidth-e.barLeft-(n?o:0);this.horiz.firstChild.style.width=fi(0,e.scrollWidth-e.clientWidth+a)+'px'}else this.horiz.style.display='',this.horiz.firstChild.style.width='0';return!this.checkedZeroWidth&&0=F(e,r.to()))return o;return-1};var Ms=function(e,t){this.anchor=e,this.head=t};Ms.prototype.from=function(){return W(this.anchor,this.head)},Ms.prototype.to=function(){return V(this.anchor,this.head)},Ms.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},jr.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=this,o=e,r;othis.size-t&&(1=this.children.length)){var e=this;do{var t=e.children.splice(e.children.length-5,5),n=new zr(t);if(!e.parent){var o=new zr(e.children);o.parent=e,e.children=[o,n],e=o}else{e.size-=n.size,e.height-=n.height;var r=h(e.parent.children,e);e.parent.children.splice(r+1,0,n)}n.parent=e.parent}while(10t.display.maxLineLength&&(t.display.maxLine=p,t.display.maxLineLength=c,t.display.maxLineChanged=!0)}null!=r&&t&&this.collapsed&&xo(t,r,a+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&wr(t.doc)),t&&Ct(t,'markerCleared',t,this,r,a),n&&lo(t),this.parent&&this.parent.clear()}},Us.prototype.find=function(e,t){var n=this;null==e&&'bookmark'==this.type&&(e=1);for(var o=0,r,a;o=e.ch)&&t.push(r.marker.parent||r.marker);return t},findMarks:function(e,t,n){e=q(this,e),t=q(this,t);var o=[],r=e.line;return this.iter(e.line,t.line+1,function(a){var s=a.markedSpans;if(s)for(var d=0,i;d=i.to||null==i.from&&r!=e.line||null!=i.from&&r==t.line&&i.from>=t.ch||n&&!n(i.marker)||o.push(i.marker.parent||i.marker);++r}),o},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var o=0;oe?(o=e,!0):void(e-=a,++t)}),q(this,M(t,o))},indexFromPos:function(e){e=q(this,e);var t=e.ch;if(e.linee.ch)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+n}),t},copy:function(e){var t=new Hs(L(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.toKs;Ks++)zs[Ks+48]=zs[Ks+96]=Ks+'';for(var i=65;90>=i;i++)zs[i]=hi(i);for(var Gs=1;12>=Gs;Gs++)zs[Gs+111]=zs[Gs+63235]='F'+Gs;var Xs={};Xs.basic={Left:'goCharLeft',Right:'goCharRight',Up:'goLineUp',Down:'goLineDown',End:'goLineEnd',Home:'goLineStartSmart',PageUp:'goPageUp',PageDown:'goPageDown',Delete:'delCharAfter',Backspace:'delCharBefore',"Shift-Backspace":'delCharBefore',Tab:'defaultTab',"Shift-Tab":'indentAuto',Enter:'newlineAndIndent',Insert:'toggleOverwrite',Esc:'singleSelection'},Xs.pcDefault={"Ctrl-A":'selectAll',"Ctrl-D":'deleteLine',"Ctrl-Z":'undo',"Shift-Ctrl-Z":'redo',"Ctrl-Y":'redo',"Ctrl-Home":'goDocStart',"Ctrl-End":'goDocEnd',"Ctrl-Up":'goLineUp',"Ctrl-Down":'goLineDown',"Ctrl-Left":'goGroupLeft',"Ctrl-Right":'goGroupRight',"Alt-Left":'goLineStart',"Alt-Right":'goLineEnd',"Ctrl-Backspace":'delGroupBefore',"Ctrl-Delete":'delGroupAfter',"Ctrl-S":'save',"Ctrl-F":'find',"Ctrl-G":'findNext',"Shift-Ctrl-G":'findPrev',"Shift-Ctrl-F":'replace',"Shift-Ctrl-R":'replaceAll',"Ctrl-[":'indentLess',"Ctrl-]":'indentMore',"Ctrl-U":'undoSelection',"Shift-Ctrl-U":'redoSelection',"Alt-U":'redoSelection',fallthrough:'basic'},Xs.emacsy={"Ctrl-F":'goCharRight',"Ctrl-B":'goCharLeft',"Ctrl-P":'goLineUp',"Ctrl-N":'goLineDown',"Alt-F":'goWordRight',"Alt-B":'goWordLeft',"Ctrl-A":'goLineStart',"Ctrl-E":'goLineEnd',"Ctrl-V":'goPageDown',"Shift-Ctrl-V":'goPageUp',"Ctrl-D":'delCharAfter',"Ctrl-H":'delCharBefore',"Alt-D":'delWordAfter',"Alt-Backspace":'delWordBefore',"Ctrl-K":'killLine',"Ctrl-T":'transposeChars',"Ctrl-O":'openLine'},Xs.macDefault={"Cmd-A":'selectAll',"Cmd-D":'deleteLine',"Cmd-Z":'undo',"Shift-Cmd-Z":'redo',"Cmd-Y":'redo',"Cmd-Home":'goDocStart',"Cmd-Up":'goDocStart',"Cmd-End":'goDocEnd',"Cmd-Down":'goDocEnd',"Alt-Left":'goGroupLeft',"Alt-Right":'goGroupRight',"Cmd-Left":'goLineLeft',"Cmd-Right":'goLineRight',"Alt-Backspace":'delGroupBefore',"Ctrl-Alt-Backspace":'delGroupAfter',"Alt-Delete":'delGroupAfter',"Cmd-S":'save',"Cmd-F":'find',"Cmd-G":'findNext',"Shift-Cmd-G":'findPrev',"Cmd-Alt-F":'replace',"Shift-Cmd-Alt-F":'replaceAll',"Cmd-[":'indentLess',"Cmd-]":'indentMore',"Cmd-Backspace":'delWrappedLineLeft',"Cmd-Delete":'delWrappedLineRight',"Cmd-U":'undoSelection',"Shift-Cmd-U":'redoSelection',"Ctrl-Up":'goDocStart',"Ctrl-Down":'goDocEnd',fallthrough:['basic','emacsy']},Xs['default']=Bi?Xs.macDefault:Xs.pcDefault;var Qs={selectAll:Rr,singleSelection:function(e){return e.setSelection(e.getCursor('anchor'),e.getCursor('head'),Yi)},killLine:function(e){return ma(e,function(t){if(t.empty()){var n=N(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.linee.doc.first){var i=N(e.doc,r.line-1).text;i&&(r=new M(r.line,1),e.replaceRange(a.charAt(0)+e.doc.lineSeparator()+i.charAt(i.length-1),M(r.line-1,i.length-1),r,'+transpose'))}n.push(new Ms(r,r))}e.setSelections(n)})},newlineAndIndent:function(e){return fo(e,function(){for(var t=e.listSelections(),n=t.length-1;0<=n;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,'+input');t=e.listSelections();for(var o=0;oe&&0==F(t,this.pos)&&n==this.button};var Zs={toString:function(){return'CodeMirror.Init'}},ed={},td={},nd,od;Qa.defaults=ed,Qa.optionHandlers=td;var rd=[];Qa.defineInitHook=function(e){return rd.push(e)};var ad=null,id=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Gi,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};id.prototype.init=function(e){function t(t){if(!Ae(r,t)){if(r.somethingSelected())$a({lineWise:!1,text:r.getSelections()}),'cut'==t.type&&r.replaceSelection('',null,'cut');else{if(!r.options.lineWiseCopyCut)return;var e=ni(r);$a({lineWise:!0,text:e.text}),'cut'==t.type&&r.operation(function(){r.setSelections(e.ranges,0,Yi),r.replaceSelection('',null,'cut')})}if(t.clipboardData){t.clipboardData.clearData();var n=ad.text.join('\n');if(t.clipboardData.setData('Text',n),t.clipboardData.getData('Text')==n)return void t.preventDefault()}var i=ri(),s=i.firstChild;r.display.lineSpace.insertBefore(i,r.display.lineSpace.firstChild),s.value=ad.text.join('\n');var d=document.activeElement;Ki(s),setTimeout(function(){r.display.lineSpace.removeChild(i),d.focus(),d==a&&o.showPrimarySelection()},50)}}var n=this,o=this,r=o.cm,a=o.div=e.lineDiv;oi(a,r.options.spellcheck),ss(a,'paste',function(t){Ae(r,t)||ei(t,r)||11>=Ii&&setTimeout(yo(r,function(){return n.updateFromDOM()}),20)}),ss(a,'compositionstart',function(t){n.composing={data:t.data,done:!1}}),ss(a,'compositionupdate',function(t){n.composing||(n.composing={data:t.data,done:!1})}),ss(a,'compositionend',function(t){n.composing&&(t.data!=n.composing.data&&n.readFromDOMSoon(),n.composing.done=!0)}),ss(a,'touchstart',function(){return o.forceCompositionEnd()}),ss(a,'input',function(){n.composing||n.readFromDOMSoon()}),ss(a,'copy',t),ss(a,'cut',t)},id.prototype.prepareSelection=function(){var e=Ln(this.cm,!1);return e.focus=this.cm.state.focused,e},id.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},id.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,n=t.doc.sel.primary(),o=n.from(),r=n.to();if(t.display.viewTo==t.display.viewFrom||o.line>=t.display.viewTo||r.line=t.display.viewFrom&&si(t,o)||{node:s[0].measure.map[2],offset:0},l=r.linee.firstLine()&&(o=M(o.line-1,N(e.doc,o.line-1).length)),r.ch==N(e.doc,r.line).text.length&&r.linet.viewTo-1)return!1;var a,i,s;o.line==t.viewFrom||0==(a=Nn(e,o.line))?(i=O(t.view[0].line),s=t.view[0].node):(i=O(t.view[a].line),s=t.view[a-1].node.nextSibling);var d=Nn(e,r.line),l,p;if(d==t.view.length-1?(l=t.viewTo-1,p=t.lineDiv.lastChild):(l=O(t.view[d+1].line)-1,p=t.view[d+1].node.previousSibling),!s)return!1;for(var c=e.doc.splitLines(pi(e,s,p,i,l)),u=A(e.doc,M(i,0),M(l,N(e.doc,l).text.length));1o.ch&&v.charCodeAt(v.length-m-1)==x.charCodeAt(x.length-m-1);)h--,m++;c[c.length-1]=v.slice(0,v.length-m).replace(/^\u200b+/,''),c[0]=c[0].slice(h).replace(/\u200b+$/,'');var S=M(i,h),E=M(l,u.length?f(u).length-m:0);if(1Ii&&a.scrollbars.setScrollTop(a.scroller.scrollTop=d),null!=s.selectionStart){(!wi||wi&&9>Ii)&&e();var t=0,n=function(){a.selForContextMenu==r.doc.sel&&0==s.selectionStart&&0t++?a.detectingSelectAll=setTimeout(n,500):(a.selForContextMenu=null,a.input.reset())};a.detectingSelectAll=setTimeout(n,200)}}var o=this,r=o.cm,a=r.display,s=o.textarea,i=In(r,t),d=a.scroller.scrollTop;if(i&&!Ri){var l=r.options.resetSelectionOnContextMenu;l&&-1==r.doc.sel.contains(i)&&yo(r,Er)(r.doc,qo(i),Yi);var p=s.style.cssText,c=o.wrapper.style.cssText;o.wrapper.style.cssText='position: absolute';var u=o.wrapper.getBoundingClientRect();s.style.cssText='position: absolute; width: 30px; height: 30px;\n top: '+(t.clientY-u.top-5)+'px; left: '+(t.clientX-u.left-5)+'px;\n z-index: 1000; background: '+(wi?'rgba(255, 255, 255, .05)':'transparent')+';\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);';var h;if(Ni&&(h=window.scrollY),a.input.focus(),Ni&&window.scrollTo(null,h),a.input.reset(),r.somethingSelected()||(s.value=o.prevInput=' '),o.contextMenuPending=!0,a.selForContextMenu=r.doc.sel,clearTimeout(a.detectingSelectAll),wi&&9<=Ii&&e(),qi){Me(t);var m=function(){Ie(window,'mouseup',m),setTimeout(n,20)};ss(window,'mouseup',m)}else setTimeout(n,50)}},sd.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled='nocursor'==e},sd.prototype.setUneditable=function(){},sd.prototype.needsContentAttribute=!1,function(e){function t(t,o,r,a){e.defaults[t]=o,r&&(n[t]=a?function(e,t,n){n!=Zs&&r(e,t,n)}:r)}var n=e.optionHandlers;e.defineOption=t,e.Init=Zs,t('value','',function(e,t){return e.setValue(t)},!0),t('mode',null,function(e,t){e.doc.modeOption=t,Qo(e)},!0),t('indentUnit',2,Qo,!0),t('indentWithTabs',!1),t('smartIndent',!0),t('tabSize',4,function(e){Yo(e),nn(e),xo(e)},!0),t('lineSeparator',null,function(e,t){if(e.doc.lineSep=t,!!t){var n=[],o=e.doc.first;e.doc.iter(function(e){for(var r=0,a;;){if(a=e.text.indexOf(t,r),-1==a)break;r=a+t.length,n.push(M(o,a))}o++});for(var r=n.length-1;0<=r;r--)Ur(e.doc,t,n[r],M(n[r].line,n[r].ch+t.length))}}),t('specialChars',/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test('\t')?'':'|\t'),'g'),n!=Zs&&e.refresh()}),t('specialCharPlaceholder',pt,function(e){return e.refresh()},!0),t('electricChars',!0),t('inputStyle',Fi?'contenteditable':'textarea',function(){throw new Error('inputStyle can not (yet) be changed in a running editor')},!0),t('spellcheck',!1,function(e,t){return e.getInputField().spellcheck=t},!0),t('rtlMoveVisually',!Vi),t('wholeLineUpdateBefore',!0),t('theme','default',function(e){za(e),Ka(e)},!0),t('keyMap','default',function(e,t,n){var o=ha(t),r=n!=Zs&&ha(n);r&&r.detach&&r.detach(e,o),o.attach&&o.attach(e,r||null)}),t('extraKeys',null),t('configureMouse',null),t('lineWrapping',!1,Xa,!0),t('gutters',[],function(e){Bo(e.options),Ka(e)},!0),t('fixedGutter',!0,function(e,t){e.display.gutters.style.left=t?kn(e.display)+'px':'0',e.refresh()},!0),t('coverGutterNextToScrollbar',!1,function(e){return ro(e)},!0),t('scrollbarStyle','native',function(e){io(e),ro(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t('lineNumbers',!1,function(e){Bo(e.options),Ka(e)},!0),t('firstLineNumber',1,Ka,!0),t('lineNumberFormatter',function(e){return e},Ka,!0),t('showCursorWhenSelecting',!1,An,!0),t('resetSelectionOnContextMenu',!0),t('lineWiseCopyCut',!0),t('pasteLinesPerSelection',!0),t('readOnly',!1,function(e,t){'nocursor'==t&&(Bn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),t('disableInput',!1,function(e,t){t||e.display.input.reset()},!0),t('dragDrop',!0,Ga),t('allowDropFileTypes',null),t('cursorBlinkRate',530),t('cursorScrollMargin',0),t('cursorHeight',1,An,!0),t('singleCursorHeightPerLine',!0,An,!0),t('workTime',100),t('workDelay',100),t('flattenSpans',!0,Yo,!0),t('addModeClass',!1,Yo,!0),t('pollInterval',100),t('undoDepth',200,function(e,t){return e.doc.history.undoDepth=t}),t('historyEventDelay',1250),t('viewportMargin',10,function(e){return e.refresh()},!0),t('maxHighlightLength',1e4,Yo,!0),t('moveInputWithCursor',!0,function(e,t){t||e.display.input.resetPosition()}),t('tabindex',null,function(e,t){return e.display.input.getField().tabIndex=t||''}),t('autofocus',null),t('direction','ltr',function(e,t){return e.doc.setDirection(t)},!0)}(Qa),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var o=this.options,r=o[e];o[e]==n&&'mode'!=e||(o[e]=n,t.hasOwnProperty(e)&&yo(this,t[e])(this,n,r),Ne(this,'optionChange',this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?'push':'unshift'](ha(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;no&&(Ja(t,a.head.line,e,!0),o=a.head.line,r==t.doc.sel.primIndex&&Qn(t))}),getTokenAt:function(e,t){return tt(this,e,t)},getLineTokens:function(e,t){return tt(this,M(e),t,!0)},getTokenTypeAt:function(e){e=q(this.doc,e);var t=Ye(this,N(this.doc,e.line)),n=0,o=(t.length-1)/2,r=e.ch,a;if(0==r)a=t[2];else for(;;){var i=n+o>>1;if((i?t[2*i-1]:0)>=r)o=i;else if(t[2*i+1]s?a:0==s?null:a.slice(0,s-1)},getModeAt:function(t){var n=this.doc.mode;return n.innerMode?e.innerMode(n,this.getTokenAt(t).state).mode:n},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var o=this,r=[];if(!n.hasOwnProperty(t))return r;var a=n[t],s=this.getModeAt(e);if('string'==typeof s[t])a[s[t]]&&r.push(a[s[t]]);else if(s[t])for(var d=0,i;da&&(e=a,o=!0),r=N(this.doc,e)}else r=e;return dn(this,r,{top:0,left:0},t||'page',n||o).top+(o?this.doc.height-xe(r):0)},defaultTextHeight:function(){return Cn(this.display)},defaultCharWidth:function(){return Sn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,o,r){var a=this.display;e=cn(this,q(this.doc,e));var i=e.bottom,s=e.left;if(t.style.position='absolute',t.setAttribute('cm-ignore-events','true'),this.display.input.setUneditable(t),a.sizer.appendChild(t),'over'==o)i=e.top;else if('above'==o||'near'==o){var d=fi(a.wrapper.clientHeight,this.doc.height),l=fi(a.sizer.clientWidth,a.lineSpace.clientWidth);('above'==o||e.bottom+t.offsetHeight>d)&&e.top>t.offsetHeight?i=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=d&&(i=e.bottom),s+t.offsetWidth>l&&(s=l-t.offsetWidth)}t.style.top=i+'px',t.style.left=t.style.right='','right'==r?(s=a.sizer.clientWidth-t.offsetWidth,t.style.right='0px'):('left'==r?s=0:'middle'==r&&(s=(a.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+'px'),n&&Kn(this,{left:s,top:i,right:s+t.offsetWidth,bottom:i+t.offsetHeight})},triggerOnKeyDown:bo(Na),triggerOnKeyPress:bo(Ra),triggerOnKeyUp:La,triggerOnMouseDown:bo(Pa),execCommand:function(e){if(Qs.hasOwnProperty(e))return Qs[e].call(null,this)},triggerElectric:bo(function(e){ti(this,e)}),findPosH:function(e,t,n,o){var r=this,a=1;0>t&&(a=-1,t=-t);for(var s=q(this.doc,e),d=0;de?o.from():o.to()},$i)}),deleteH:bo(function(e,t){var n=this.doc.sel,o=this.doc;n.somethingSelected()?o.replaceSelection('',null,'+delete'):ma(this,function(n){var r=ai(o,n.head,e,t,!1);return 0>e?{from:r,to:n.head}:{from:n.head,to:r}})}),findPosV:function(e,t,n,o){var r=this,a=1,s=o;0>t&&(a=-1,t=-t);for(var d=q(this.doc,e),l=0,i;le?i.from():i.to();var s=cn(n,i.head,'div');null!=i.goalColumn&&(s.left=i.goalColumn),r.push(s.left);var d=ii(n,s,e,t);return'page'==t&&i==o.sel.primary()&&Xn(n,pn(n,d,'div').top-s.top),d},$i),r.length)for(var s=0;sh(dd,ld)&&(Qa.prototype[ld]=function(e){return function(){return e.apply(this.doc,arguments)}}(Hs.prototype[ld]));return Oe(Hs),Qa.inputStyles={textarea:sd,contenteditable:id},Qa.defineMode=function(e){Qa.defaults.mode||'null'==e||(Qa.defaults.mode=e),He.apply(this,arguments)},Qa.defineMIME=function(e,t){hs[e]=t},Qa.defineMode('null',function(){return{token:function(e){return e.skipToEnd()}}}),Qa.defineMIME('text/plain','null'),Qa.defineExtension=function(e,t){Qa.prototype[e]=t},Qa.defineDocExtension=function(e,t){Hs.prototype[e]=t},Qa.fromTextArea=function(e,t){function n(){e.value=d.getValue()}if(t=t?c(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var o=s();t.autofocus=o==e||null!=e.getAttribute('autofocus')&&o==document.body}var r;if(e.form&&(ss(e.form,'submit',n),!t.leaveSubmitMethodAlone)){var a=e.form;r=a.submit;try{var i=a.submit=function(){n(),a.submit=r,a.submit(),a.submit=i}}catch(t){}}t.finishInit=function(t){t.save=n,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,n(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display='',e.form&&(Ie(e.form,'submit',n),'function'==typeof e.form.submit&&(e.form.submit=r))}},e.style.display='none';var d=Qa(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return d},function(e){e.off=Ie,e.on=ss,e.wheelEventPixels=Vo,e.Doc=Hs,e.splitLines=ds,e.countColumn=u,e.findColumn=m,e.isWordChar=C,e.Pass=Qi,e.signal=Ne,e.Line=Cs,e.changeEnd=jo,e.scrollbarModel=Ls,e.Pos=M,e.cmpPos=F,e.modes=us,e.mimeModes=hs,e.resolveMode=qe,e.getMode=je,e.modeExtensions=ms,e.extendMode=ze,e.copyState=Ke,e.startState=Xe,e.innerMode=Ge,e.commands=Qs,e.keyMap=Xs,e.keyName=ua,e.isModifierKey=pa,e.lookupKey=la,e.normalizeKeyMap=da,e.StringStream=gs,e.SharedTextMarker=Vs,e.TextMarker=Us,e.LineWidget=Fs,e.e_preventDefault=Pe,e.e_stopPropagation=De,e.e_stop=Me,e.addClass=d,e.contains=a,e.rmClass=ji,e.keyNames=zs}(Qa),Qa.version='5.36.1',Qa}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(e){function t(e,t,o,r){var a=e.getLineHandle(t.line),d=t.ch-1,l=0<=d&&s[a.text.charAt(d)]||s[a.text.charAt(++d)];if(!l)return null;var p='>'==l.charAt(1)?1:-1;if(o&&0a))for(u==t.line&&(m=t.ch-(0>n?1:0));m!=g;m+=n){var f=h.charAt(m);if(p.test(f)&&(void 0===o||e.getTokenTypeAt(i(u,m+1))==o)){var y=s[f];if('>'==y.charAt(1)==0document.documentMode),i=e.Pos,s={"(":')>',")":'(<',"[":']>',"]":'[<',"{":'}>',"}":'{<'},d=null;e.defineOption('matchBrackets',!1,function(t,n,o){o&&o!=e.Init&&t.off('cursorActivity',r),n&&(t.state.matchBrackets='object'==typeof n?n:{},t.on('cursorActivity',r))}),e.defineExtension('matchBrackets',function(){o(this,!0)}),e.defineExtension('findMatchingBracket',function(e,n,o){return t(this,e,n,o)}),e.defineExtension('scanForBracket',function(e,t,o,r){return n(this,e,t,o,r)})}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror'),require('../fold/xml-fold')):'function'==typeof define&&define.amd?define(['../../lib/codemirror','../fold/xml-fold'],e):e(CodeMirror)}(function(e){'use strict';function t(e){e.state.tagHit&&e.state.tagHit.clear(),e.state.tagOther&&e.state.tagOther.clear(),e.state.tagHit=e.state.tagOther=null}function n(n){n.state.failedTagMatch=!1,n.operation(function(){if(t(n),!n.somethingSelected()){var o=n.getCursor(),r=n.getViewport();r.from=Math.min(r.from,o.line),r.to=Math.max(o.line+1,r.to);var a=e.findMatchingTag(n,o,r);if(a){if(n.state.matchBothTags){var i='open'==a.at?a.open:a.close;i&&(n.state.tagHit=n.markText(i.from,i.to,{className:'CodeMirror-matchingtag'}))}var s='close'==a.at?a.open:a.close;s?n.state.tagOther=n.markText(s.from,s.to,{className:'CodeMirror-matchingtag'}):n.state.failedTagMatch=!0}}})}function o(e){e.state.failedTagMatch&&n(e)}e.defineOption('matchTags',!1,function(r,a,i){i&&i!=e.Init&&(r.off('cursorActivity',n),r.off('viewportChange',o),t(r)),a&&(r.state.matchBothTags='object'==typeof a&&a.bothTags,r.on('cursorActivity',n),r.on('viewportChange',o),n(r))}),e.commands.toMatchingTag=function(t){var n=e.findMatchingTag(t,t.getCursor());if(n){var o='close'==n.at?n.open:n.close;o&&t.extendSelection(o.to,o.from)}}}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(e){function t(e,t){return'pairs'==t&&'string'==typeof e?e:'object'==typeof e&&null!=e[t]?e[t]:u[t]}function n(e){return function(t){return d(t,e)}}function o(e){var t=e.state.closeBrackets;if(!t)return null;var n=e.getModeAt(e.getCursor());return n.closeBrackets||t}function r(n){var r=o(n);if(!r||n.getOption('disableInput'))return e.Pass;for(var a=t(r,'pairs'),s=n.listSelections(),d=0;d=x.ch||n.getRange(h(x.line,x.ch-3),h(x.line,x.ch-2))!=r))C='addFour';else if(m){if(!e.isWordChar(i)&&c(n,x,r))C='both';else return e.Pass;}else if(f&&(n.getLine(x.line).length==x.ch||l(i,d)||/\s/.test(i)))C='both';else return e.Pass;if(!b)b=C;else if(b!=C)return e.Pass}var S=p%2?d.charAt(p-1):r,E=p%2?r:d.charAt(p+1);n.operation(function(){if('skip'==b)n.execCommand('goCharRight');else if('skipThree'==b)for(var e=0;3>e;e++)n.execCommand('goCharRight');else if('surround'==b){for(var t=n.getSelections(),e=0;e=n.ch+1)return /\bstring2?\b/.test(s);i.start=i.pos}}var u={pairs:'()[]{}\'\'""',triples:'',explode:'[]{}'},h=e.Pos;e.defineOption('autoCloseBrackets',!1,function(t,n,o){o&&o!=e.Init&&(t.removeKeyMap(g),t.state.closeBrackets=null),n&&(t.state.closeBrackets=n,t.addKeyMap(g))});for(var m=u.pairs+'`',g={Backspace:r,Enter:a},f=0;fi.ch&&(y=y.slice(0,y.length-p.end+i.ch));var b=y.toLowerCase();if(!y||'string'==p.type&&(p.end!=i.ch||!/[\"\']/.test(p.string.charAt(p.string.length-1))||1==p.string.length)||'tag'==p.type&&'closeTag'==u.type||p.string.indexOf('/')==p.string.length-1||g&&-1'+(v?'\n\n':'')+'',newPos:v?e.Pos(i.line+1,0):e.Pos(i.line,i.ch+1)}}for(var l=n.length-1,x;0<=l;l--){x=o[l],t.replaceRange(x.text,n[l].head,n[l].anchor,'+insert');var C=t.listSelections().slice(0);C[l]={head:x.newPos,anchor:x.newPos},t.setSelections(C),x.indent&&(t.indentLine(x.newPos.line,null,!0),t.indentLine(x.newPos.line+1,null,!0))}}function n(t,n){for(var o=t.listSelections(),r=[],s=n?'/':''!=t.getLine(i.line).charAt(l.end)&&(u+='>'),r[d]=u}t.replaceSelections(r),o=t.listSelections();for(var d=0;d\'']=function(e){return t(e)}),n.addKeyMap(i)}});var s=['area','base','br','col','command','embed','hr','img','input','keygen','link','meta','param','source','track','wbr'],d=['applet','blockquote','body','button','div','dl','fieldset','form','frameset','h1','h2','h3','h4','h5','h6','head','html','iframe','layer','legend','object','ol','p','select','table','ul'];e.commands.closeTag=function(e){return n(e)}}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(e){'use strict';function t(e){var t=e.search(a);return-1==t?0:t}function n(e,t,n){return /\bstring\b/.test(e.getTokenTypeAt(s(t.line,0)))&&!/^[\'\"`]/.test(n)}var o=Math.min,r={},a=/[^\s\u00a0]/,s=e.Pos;e.commands.toggleComment=function(e){e.toggleComment()},e.defineExtension('toggleComment',function(e){e||(e=r);for(var t=this,n=Infinity,o=this.listSelections(),a=null,d=o.length-1;0<=d;d--){var i=o[d].from(),l=o[d].to();i.line>=n||(l.line>=n&&(l=s(n,0)),n=i.line,null==a?t.uncomment(i,l,e)?a='un':(t.lineComment(i,l,e),a='line'):'un'==a?t.uncomment(i,l,e):t.lineComment(i,l,e))}}),e.defineExtension('lineComment',function(e,i,d){d||(d=r);var l=this,p=l.getModeAt(e),c=l.getLine(e.line);if(!(null==c||n(l,e,c))){var u=d.lineComment||p.lineComment;if(!u)return void((d.blockCommentStart||p.blockCommentStart)&&(d.fullLines=!0,l.blockComment(e,i,d)));var h=o(0!=i.ch||i.line==e.line?i.line+1:i.line,l.lastLine()+1),m=null==d.padding?' ':d.padding,g=d.commentBlankLines||e.line==i.line;l.operation(function(){if(d.indent){for(var n=null,o=e.line;oi.length)&&(n=i)}for(var o=e.line;ou||d.operation(function(){if(!1!=n.fullLines){var o=a.test(d.getLine(u));d.replaceRange(h+c,s(u)),d.replaceRange(p+h,s(e.line,0));var r=n.blockCommentLead||l.blockCommentLead;if(null!=r)for(var m=e.line+1;m<=u;++m)(m!=u||o)&&d.replaceRange(r+h,s(m,0))}else d.replaceRange(c,t),d.replaceRange(p,e)})}),e.defineExtension('uncomment',function(e,t,n){n||(n=r);var d=this,l=d.getModeAt(e),p=o(0!=t.ch||t.line==e.line?t.line:t.line-1,d.lastLine()),c=o(e.line,p),u=n.lineComment||l.lineComment,h=[],m=null==n.padding?' ':n.padding,g;lineComment:{if(!u)break lineComment;for(var f=c;f<=p;++f){var i=d.getLine(f),y=i.indexOf(u);if(-1n||(t.slice(o,o+m.length)==m&&(o+=m.length),g=!0,d.replaceRange('',s(e,n),s(e,o)))}}),g)return!0}var b=n.blockCommentStart||l.blockCommentStart,v=n.blockCommentEnd||l.blockCommentEnd;if(!b||!v)return!1;var x=n.blockCommentLead||l.blockCommentLead,C=d.getLine(c),S=p==c?C:d.getLine(p),E=C.indexOf(b),k=S.lastIndexOf(v);if(-1==k&&c!=p&&(S=d.getLine(--p),k=S.lastIndexOf(v)),-1==E||-1==k||!/comment/.test(d.getTokenTypeAt(s(c,E+1)))||!/comment/.test(d.getTokenTypeAt(s(p,k+1))))return!1;var T=C.lastIndexOf(b,e.ch),w=-1==T?-1:C.slice(0,e.ch).indexOf(v,T+b.length);if(-1!=T&&-1!=w&&w+v.length!=e.ch)return!1;w=S.indexOf(v,t.ch);var I=S.slice(t.ch).lastIndexOf(b,w-t.ch);return(T=-1==w||-1==I?-1:t.ch+I,-1==w||-1==T||T==t.ch)&&(d.operation(function(){d.replaceRange('',s(p,k-(m&&S.slice(k-m.length,k)==m?m.length:0)),s(p,k+v.length));var e=E+b.length;if(m&&C.slice(e,e+m.length)==m&&(e+=m.length),d.replaceRange('',s(c,E),s(c,e)),x)for(var t=c+1;t<=p;++t){var n=d.getLine(t),o=n.indexOf(x);if(!(-1==o||a.test(n.slice(0,o)))){var r=o+x.length;m&&n.slice(r,r+m.length)==m&&(r+=m.length),d.replaceRange('',s(t,o),s(t,r))}}}),!0)})}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(t){'use strict';function e(e,r,a,s){function i(t){var n=d(e,r);if(!n||n.to.line-n.from.linee.firstLine();)r=t.Pos(r.line-1,0),p=i(!1);if(p&&!p.cleared&&'unfold'!==s){var c=n(e,a);t.on(c,'mousedown',function(n){u.clear(),t.e_preventDefault(n)});var u=e.markText(p.from,p.to,{replacedWith:c,clearOnEnter:!0,__isFold:!0});u.on('clear',function(n,o){t.signal(e,'unfold',e,n,o)}),t.signal(e,'fold',e,p.from,p.to)}}function n(e,t){var n=o(e,t,'widget');if('string'==typeof n){var r=document.createTextNode(n);n=document.createElement('span'),n.appendChild(r),n.className='CodeMirror-foldmarker'}return n}function o(e,t,n){if(t&&t[n]!==void 0)return t[n];var o=e.options.foldOptions;return o&&void 0!==o[n]?o[n]:r[n]}t.newFoldFunction=function(t,n){return function(o,r){e(o,r,{rangeFinder:t,widget:n})}},t.defineExtension('foldCode',function(t,n,o){e(this,t,n,o)}),t.defineExtension('isFolded',function(e){for(var t=this.findMarksAt(e),n=0;n=s&&(n=r(a.indicatorOpen))}e.setGutterMarker(t,a.gutter,n),++i})}function i(e){var t=e.getViewport(),n=e.state.foldGutter;n&&(e.operation(function(){a(e,t.from,t.to)}),n.from=t.from,n.to=t.to)}function s(e,t,n){var r=e.state.foldGutter;if(r){var a=r.options;if(n==a.gutter){var i=o(e,t);i?i.clear():e.foldCode(c(t,0),a.rangeFinder)}}}function d(e){var t=e.state.foldGutter;if(t){var n=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){i(e)},n.foldOnChangeTimeSpan||600)}}function l(e){var t=e.state.foldGutter;if(t){var n=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var n=e.getViewport();t.from==t.to||20t.to&&(a(e,t.to,n.to),t.to=n.to)})},n.updateViewportTimeSpan||400)}}function p(e,t){var n=e.state.foldGutter;if(n){var o=t.line;o>=n.from&&o=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function a(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function s(e){for(;;){var t=e.text.indexOf('>',e.ch);if(-1==t)if(r(e))continue;else return;if(!o(e,t+1)){e.ch=t+1;continue}var n=e.text.lastIndexOf('/',t),a=-1',e.ch-1):-1;if(-1==t)if(a(e))continue;else return;if(!o(e,t+1)){e.ch=t;continue}var n=e.text.lastIndexOf('/',t),r=-1p&&(!t||t==o[2]))return{tag:o[2],from:u(r,a),to:u(e.line,e.ch)}}else n.push(o[2])}}function c(e,t){for(var n=[];;){var o=p(e);if(!o)return;if('selfClose'==o){d(e);continue}var r=e.line,a=e.ch,s=d(e);if(!s)return;if(s[1])n.push(s[2]);else{for(var l=n.length-1;0<=l;--l)if(n[l]==s[2]){n.length=l;break}if(0>l&&(!t||t==s[2]))return{tag:s[2],from:u(e.line,e.ch),to:u(r,a)}}}}var u=e.Pos,h=/<(\/?)([A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD-:.0-9\u00B7\u0300-\u036F\u203F-\u2040]*)/g;e.registerHelper('fold','xml',function(e,t){for(var o=new n(e,t.line,0);;){var r=l(o),a;if(!r||o.line!=t.line||!(a=s(o)))return;if(!r[1]&&'selfClose'!=a){var t=u(o.line,o.ch),d=i(o,r[2]);return d&&{from:t,to:d.from}}}}),e.findMatchingTag=function(e,o,r){var a=new n(e,o.line,o.ch,r);if(-1!=a.text.indexOf('>')||-1!=a.text.indexOf('<')){var l=s(a),p=l&&u(a.line,a.ch),h=l&&d(a);if(l&&h&&!(0s)d=l;else if(!/\S/.test(p));else break}if(d)return{from:e.Pos(n.line,r.length),to:e.Pos(d,t.getLine(d).length)}}})}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(e){'use strict';e.registerGlobalHelper('fold','comment',function(e){return e.blockCommentStart&&e.blockCommentEnd},function(t,n){var o=t.getModeAt(n),r=o.blockCommentStart,a=o.blockCommentEnd;if(r&&a){for(var s=n.line,d=t.getLine(s),l=n.ch,p=0,c,u;;){if(u=0>=l?-1:d.lastIndexOf(r,l-1),-1==u){if(1==p)return;p=1,l=d.length;continue}if(1==p&&uv&&(v=i.length),0>x&&(x=i.length),b=Math.min(v,x),b==i.length)break;if(b==v)++h;else if(! --h){g=y,f=b;break outer}++b}return null==g||s==g&&f==c?void 0:{from:e.Pos(s,c),to:e.Pos(g,f)}}})}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(t){'use strict';var n=Math.min;t.registerHelper('fold','brace',function(e,o){function r(n){for(var r=o.ch,i=0,d;;){if(d=0>=r?-1:s.lastIndexOf(n,r-1),-1==d){if(1==i)break;i=1,r=s.length;continue}if(1==i&&db&&(b=i.length),0>v&&(v=i.length),y=n(b,v),y==i.length)break;if(e.getTokenTypeAt(t.Pos(f,y+1))==c)if(y==b)++u;else if(! --u){m=f,g=y;break outer}++y}return null==m||a==m&&g==p?void 0:{from:t.Pos(a,p),to:t.Pos(m,g)}}}),t.registerHelper('fold','import',function(o,e){function r(r){if(ro.lastLine())return null;var a=o.getTokenAt(t.Pos(r,1));if(/\S/.test(a.string)||(a=o.getTokenAt(t.Pos(r,a.end+1))),'keyword'!=a.type||'import'!=a.string)return null;for(var s=r,i=n(o.lastLine(),r+10);s<=i;++s){var e=o.getLine(s),d=e.indexOf(';');if(-1!=d)return{startCh:a.end,end:t.Pos(s,d)}}}var e=e.line,a=r(e),i;if(!a||r(e-1)||(i=r(e-2))&&i.end.line==e-1)return null;for(var s=a.end,d;;){if(d=r(s.line+1),null==d)break;s=d.end}return{from:o.clipPos(t.Pos(e,a.startCh+1)),to:s}}),t.registerHelper('fold','include',function(e,n){function o(n){if(ne.lastLine())return null;var o=e.getTokenAt(t.Pos(n,1));if(/\S/.test(o.string)||(o=e.getTokenAt(t.Pos(n,o.end+1))),'meta'==o.type&&'#include'==o.string.slice(0,8))return o.start+8}var n=n.line,r=o(n);if(null==r||null!=o(n-1))return null;for(var a=n,i;;){if(i=o(a+1),null==i)break;++a}return{from:t.Pos(n,r+1),to:e.clipPos(t.Pos(a))}})}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror'),'cjs'):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],function(t){e(t,'amd')}):e(CodeMirror,'plain')}(function(e,t){function n(e,t){var n=t;return function(){0==--n&&e()}}function o(t,o){var r=e.modes[t].dependencies;if(!r)return o();for(var a=[],s=0;sS){d.style.height=S-5+'px',d.style.top=(v=y.bottom-E.top)+'px';var I=s.getCursor();t.from.ch!=I.ch&&(y=s.cursorCoords(I),d.style.left=(b=y.left)+'px',E=d.getBoundingClientRect())}}var N=E.right-C;if(0C&&(d.style.width=C-5+'px',N-=E.right-E.left-C),d.style.left=(b=y.left-N)+'px'),s.addKeyMap(this.keyMap=a(n,{moveFocus:function(e,t){o.changeActive(o.selectedHint+e,t)},setFocus:function(e){o.changeActive(e)},menuSize:function(){return o.screenAmount()},length:l.length,close:function(){n.close()},pick:function(){o.pick()},data:t})),n.options.closeOnUnfocus){var A;s.on('blur',this.onBlur=function(){A=setTimeout(function(){n.close()},100)}),s.on('focus',this.onFocus=function(){clearTimeout(A)})}var L=s.getScrollInfo();return s.on('scroll',this.onScroll=function(){var e=s.getScrollInfo(),t=s.getWrapperElement().getBoundingClientRect(),o=v+L.top-e.top,r=o-(window.pageYOffset||(document.documentElement||document.body).scrollTop);return x||(r+=d.offsetHeight),r<=t.top||r>=t.bottom?n.close():void(d.style.top=o+'px',d.style.left=b+L.left-e.left+'px')}),e.on(d,'dblclick',function(n){var e=i(d,n.target||n.srcElement);e&&null!=e.hintId&&(o.changeActive(e.hintId),o.pick())}),e.on(d,'click',function(r){var e=i(d,r.target||r.srcElement);e&&null!=e.hintId&&(o.changeActive(e.hintId),n.options.completeOnSingleClick&&o.pick())}),e.on(d,'mousedown',function(){setTimeout(function(){s.focus()},20)}),e.signal(t,'select',l[0],d.firstChild),!0}function d(e,t){if(!e.somethingSelected())return t;for(var n=[],o=0;o=this.data.list.length?t=n?this.data.list.length-1:0:0>t&&(t=n?0:this.data.list.length-1),this.selectedHint!=t){var o=this.hints.childNodes[this.selectedHint];o.className=o.className.replace(' '+u,''),o=this.hints.childNodes[this.selectedHint=t],o.className+=' '+u,o.offsetTopthis.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=o.offsetTop+o.offsetHeight-this.hints.clientHeight+3),e.signal(this.data,'select',this.data.list[this.selectedHint],o)}},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1}},e.registerHelper('hint','auto',{resolve:function(t,n){var o=t.getHelpers(n,'hint'),r;if(o.length){var a=function(e,t,n){function r(o){return o==a.length?t(null):void l(a[o],e,n,function(e){e&&0,]/,closeOnUnfocus:!0,completeOnSingleClick:!0,container:null,customKeys:null,extraKeys:null};e.defineOption('hintOptions',null)}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(e){function t(t,n){for(var o=0,r=t.length;os.ch&&(d.end=s.ch,d.string=d.string.slice(0,s.ch-d.start)):d={start:s.ch,end:s.ch,string:'',state:d.state,type:'.'==d.string?'property':null};for(var l=d;'property'==l.type;){if(l=o(t,i(s.line,l.start)),'.'!=l.string)return;if(l=o(t,i(s.line,l.start)),!p)var p=[];p.push(l)}return{list:a(d,p,n,r),from:i(s.line,d.start),to:i(s.line,d.end)}}}function r(e,t){var n=e.getTokenAt(t);return t.ch==n.start+1&&'.'==n.string.charAt(0)?(n.end=n.start,n.string='.',n.type='property'):/^\.[\w$_]*$/.test(n.string)&&(n.type='property',n.start++,n.string=n.string.replace(/\./,'')),n}function a(e,o,r,a){function i(e){0!=e.lastIndexOf(u,0)||n(c,e)||c.push(e)}function p(e){for(var n in'string'==typeof e?t(s,i):e instanceof Array?t(d,i):e instanceof Function&&t(l,i),e)i(n)}var c=[],u=e.string,h=a&&a.globalScope||window;if(o&&o.length){var m=o.pop(),g;for(m.type&&0===m.type.indexOf('variable')?(a&&a.additionalContext&&(g=a.additionalContext[m.string]),(!a||!1!==a.useGlobalScope)&&(g=g||h[m.string])):'string'==m.type?g='':'atom'==m.type?g=1:'function'==m.type&&(null!=h.jQuery&&('$'==m.string||'jQuery'==m.string)&&'function'==typeof h.jQuery?g=h.jQuery():null!=h._&&'_'==m.string&&'function'==typeof h._&&(g=h._()));null!=g&&o.length;)g=g[o.pop().string];null!=g&&p(g)}else{for(var f=e.state.localVars;f;f=f.next)i(f.name);for(var f=e.state.globalVars;f;f=f.next)i(f.name);a&&!1===a.useGlobalScope||p(h),t(r,i)}return c}var i=e.Pos;e.registerHelper('hint','javascript',function(e,t){return o(e,p,function(t,e){return t.getTokenAt(e)},t)}),e.registerHelper('hint','coffeescript',function(e,t){return o(e,c,r,t)});var s='charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight toUpperCase toLowerCase split concat match replace search'.split(' '),d='length concat join splice push pop shift unshift slice reverse sort indexOf lastIndexOf every some filter forEach map reduce reduceRight '.split(' '),l=['prototype','apply','call','bind'],p='break case catch continue debugger default delete do else false finally for function if in instanceof new null return switch throw true try typeof var void while with'.split(' '),c='and break catch class continue delete do else extends false finally for if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes'.split(' ')}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(e){'use strict';var t=Math.max,o=e.Pos;e.registerHelper('hint','xml',function(r,a){var s=a&&a.schemaInfo,d=a&&a.quoteChar||'"';if(s){var l=r.getCursor(),p=r.getTokenAt(l);p.end>l.ch&&(p.end=l.ch,p.string=p.string.slice(0,l.ch-p.start));var c=e.innerMode(r.getMode(),p.state);if('xml'==c.mode.name){var u=[],h=!1,m=/\btag\b/.test(p.type)&&!/>$/.test(p.string),g=m&&/^\w/.test(p.string),f,y;if(g){var b=r.getLine(l.line).slice(t(0,p.start-2),p.start),v=/<\/$/.test(b)?'close':/<$/.test(b)?'open':null;v&&(y=p.start-('close'==v?2:1))}else m&&'<'==p.string?v='open':m&&'')}else{var C=s[c.state.tagName],k=C&&C.attrs,T=s['!attrs'];if(!k&&!T)return;if(!k)k=T;else if(T){var w={};for(var I in T)T.hasOwnProperty(I)&&(w[I]=T[I]);for(var I in k)k.hasOwnProperty(I)&&(w[I]=k[I]);k=w}if('string'==p.type||'='==p.string){var b=r.getRange(o(l.line,t(0,l.ch-60)),o(l.line,'string'==p.type?p.start:p.end)),N=b.match(/([^\s\u00a0=<>\"\']+)=$/),A;if(!N||!k.hasOwnProperty(N[1])||!(A=k[N[1]]))return;if('function'==typeof A&&(A=A.call(this,r)),'string'==p.type){f=p.string;var L=0;/['"]/.test(p.string.charAt(0))&&(d=p.string.charAt(0),f=p.string.slice(1),L++);var n=p.string.length;/['"]/.test(p.string.charAt(n-1))&&(d=p.string.charAt(n-1),f=p.string.substr(L,n-2)),h=!0}for(var E=0;E][<][=] [X]','device-aspect-ratio: X/Y','orientation:portrait','orientation:landscape','device-height: [X]','device-width: [X]'],l={attrs:{}},p={a:{attrs:{href:null,ping:null,type:null,media:d,target:o,hreflang:n}},abbr:l,acronym:l,address:l,applet:l,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:d,hreflang:n,type:null,shape:['default','rect','circle','poly']}},article:l,aside:l,audio:{attrs:{src:null,mediagroup:null,crossorigin:['anonymous','use-credentials'],preload:['none','metadata','auto'],autoplay:['','autoplay'],loop:['','loop'],controls:['','controls']}},b:l,base:{attrs:{href:null,target:o}},basefont:l,bdi:l,bdo:l,big:l,blockquote:{attrs:{cite:null}},body:l,br:l,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:['','autofocus'],disabled:['','autofocus'],formenctype:i,formmethod:a,formnovalidate:['','novalidate'],formtarget:o,type:['submit','reset','button']}},canvas:{attrs:{width:null,height:null}},caption:l,center:l,cite:l,code:l,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:['command','checkbox','radio'],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:['','disabled'],checked:['','checked']}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:['','disabled'],multiple:['','multiple']}},datalist:{attrs:{data:null}},dd:l,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:['','open']}},dfn:l,dir:l,div:l,dl:l,dt:l,em:l,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:['','disabled'],form:null,name:null}},figcaption:l,figure:l,font:l,footer:l,form:{attrs:{action:null,name:null,"accept-charset":r,autocomplete:['on','off'],enctype:i,method:a,novalidate:['','novalidate'],target:o}},frame:l,frameset:l,h1:l,h2:l,h3:l,h4:l,h5:l,h6:l,head:{attrs:{},children:['title','base','link','style','meta','script','noscript','command']},header:l,hgroup:l,hr:l,html:{attrs:{manifest:null},children:['head','body']},i:l,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:['allow-top-navigation','allow-same-origin','allow-forms','allow-scripts'],seamless:['','seamless']}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:['anonymous','use-credentials']}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:['audio/*','video/*','image/*'],autocomplete:['on','off'],autofocus:['','autofocus'],checked:['','checked'],disabled:['','disabled'],formenctype:i,formmethod:a,formnovalidate:['','novalidate'],formtarget:o,multiple:['','multiple'],readonly:['','readonly'],required:['','required'],type:['hidden','text','search','tel','url','email','password','datetime','date','month','week','time','datetime-local','number','range','color','checkbox','radio','file','submit','image','reset','button']}},ins:{attrs:{cite:null,datetime:null}},kbd:l,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:['','autofocus'],disabled:['','disabled'],keytype:['RSA']}},label:{attrs:{for:null,form:null}},legend:l,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:n,media:d,sizes:['all','16x16','16x16 32x32','16x16 32x32 64x64']}},map:{attrs:{name:null}},mark:l,menu:{attrs:{label:null,type:['list','context','toolbar']}},meta:{attrs:{content:null,charset:r,name:['viewport','application-name','author','description','generator','keywords'],"http-equiv":['content-language','content-type','default-style','refresh']}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:l,noframes:l,noscript:l,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:['','typemustmatch']}},ol:{attrs:{reversed:['','reversed'],start:null,type:['1','a','A','i','I']}},optgroup:{attrs:{disabled:['','disabled'],label:null}},option:{attrs:{disabled:['','disabled'],label:null,selected:['','selected'],value:null}},output:{attrs:{for:null,form:null,name:null}},p:l,param:{attrs:{name:null,value:null}},pre:l,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:l,rt:l,ruby:l,s:l,samp:l,script:{attrs:{type:['text/javascript'],src:null,async:['','async'],defer:['','defer'],charset:r}},section:l,select:{attrs:{form:null,name:null,size:null,autofocus:['','autofocus'],disabled:['','disabled'],multiple:['','multiple']}},small:l,source:{attrs:{src:null,type:null,media:null}},span:l,strike:l,strong:l,style:{attrs:{type:['text/css'],media:d,scoped:null}},sub:l,summary:l,sup:l,table:l,tbody:l,td:{attrs:{colspan:null,rowspan:null,headers:null}},textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:['','autofocus'],disabled:['','disabled'],readonly:['','readonly'],required:['','required'],wrap:['soft','hard']}},tfoot:l,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:['row','col','rowgroup','colgroup']}},thead:l,time:{attrs:{datetime:null}},title:l,tr:l,track:{attrs:{src:null,label:null,default:null,kind:['subtitles','captions','descriptions','chapters','metadata'],srclang:n}},tt:l,u:l,ul:l,var:l,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:['anonymous','use-credentials'],preload:['auto','metadata','none'],autoplay:['','autoplay'],mediagroup:['movie'],muted:['','muted'],controls:['','controls']}},wbr:l},c={accesskey:['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9'],class:null,contenteditable:['true','false'],contextmenu:null,dir:['ltr','rtl','auto'],draggable:['true','false','auto'],dropzone:['copy','move','link','string:','file:'],hidden:['hidden'],id:null,inert:['inert'],itemid:null,itemprop:null,itemref:null,itemscope:['itemscope'],itemtype:null,lang:['en','es'],spellcheck:['true','false'],style:null,tabindex:['1','2','3','4','5','6','7','8','9'],title:null,translate:['yes','no'],onclick:null,rel:['stylesheet','alternate','author','bookmark','help','license','next','nofollow','noreferrer','prefetch','prev','search','tag']};for(var u in t(l),p)p.hasOwnProperty(u)&&p[u]!=l&&t(p[u]);e.htmlSchema=p,e.registerHelper('hint','html',function(t,n){var o={schemaInfo:p};if(n)for(var r in n)o[r]=n[r];return e.hint.xml(t,o)})}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror'),require('../../mode/css/css')):'function'==typeof define&&define.amd?define(['../../lib/codemirror','../../mode/css/css'],e):e(CodeMirror)}(function(e){'use strict';var t={link:1,visited:1,active:1,hover:1,focus:1,"first-letter":1,"first-line":1,"first-child":1,before:1,after:1,lang:1};e.registerHelper('hint','css',function(n){function o(e){for(var t in e)l&&0!=t.lastIndexOf(l,0)||c.push(t)}var r=n.getCursor(),a=n.getTokenAt(r),i=e.innerMode(n.getMode(),a.state);if('css'==i.mode.name){if('keyword'==a.type&&0=='!important'.indexOf(a.string))return{list:['!important'],from:e.Pos(r.line,a.start),to:e.Pos(r.line,a.end)};var s=a.start,d=r.ch,l=a.string.slice(0,d-s);/[^\w$_-]/.test(l)&&(l='',s=d=r.ch);var p=e.resolveMode('text/css'),c=[],u=i.state.state;if('pseudo'==u||'variable-3'==a.type?o(t):'block'==u||'maybeprop'==u?o(p.propertyKeywords):'prop'==u||'parens'==u||'at'==u||'params'==u?(o(p.valueKeywords),o(p.colorKeywords)):('media'==u||'media_parens'==u)&&(o(p.mediaTypes),o(p.mediaFeatures)),c.length)return{list:c,from:e.Pos(r.line,s),to:e.Pos(r.line,d)}}})}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(e){'use strict';function t(e){for(var t=0;te.lastLine())){var i=e.getLine(n.line),u=i.length-l[0].length;if(s(i.slice(u))==d[0]){for(var h=o(n.line,u),p=n.line+1,c=1;cn)--o;else return o}var o=e.Pos;t.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(e){function t(e){var t=o(e,0);return n.pos={from:t,to:t},n.atOccurrence=!1,!1}for(var n=this,r=this.doc.clipPos(e?this.pos.from:this.pos.to);;){if(this.pos=this.matches(e,r))return this.atOccurrence=!0,this.pos.match||!0;if(e){if(!r.line)return t(0);r=o(r.line-1,this.doc.getLine(r.line-1).length)}else{var a=this.doc.lineCount();if(r.line==a-1)return t(a);r=o(r.line+1,0)}}},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,n){if(this.atOccurrence){var r=e.splitLines(t);this.doc.replaceRange(r,this.pos.from,this.pos.to,n),this.pos.to=o(this.pos.from.line+r.length-1,r[r.length-1].length+(1==r.length?this.pos.from.ch:0))}}},e.defineExtension('getSearchCursor',function(e,n,o){return new t(this.doc,e,n,o)}),e.defineDocExtension('getSearchCursor',function(e,n,o){return new t(this,e,n,o)}),e.defineExtension('selectMatches',function(t,n){for(var o=[],r=this.getSearchCursor(t,this.getCursor('from'),n);r.findNext()&&!(0n.line&&document.querySelector&&(o=t.display.wrapper.querySelector('.CodeMirror-dialog'))&&o.getBoundingClientRect().bottom-4>t.cursorCoords(n,'window').top&&((l=o).style.opacity=.4)}))})}else s(t,y,'Search for:',d,function(e){e&&!a.query&&t.operation(function(){c(t,a,e),a.posFrom=a.posTo=t.getCursor(),h(t,n)})})}function h(t,n,r){t.operation(function(){var i=o(t),s=a(t,i.query,n?i.posFrom:i.posTo);!s.find(n)&&(s=a(t,i.query,n?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0)),!s.find(n))||(t.setSelection(s.from(),s.to()),t.scrollIntoView({from:s.from(),to:s.to()},20),i.posFrom=s.from(),i.posTo=s.to(),r&&r(s.from(),s.to()))})}function m(e){e.operation(function(){var t=o(e);t.lastQuery=t.query;t.query&&(t.query=t.queryText=null,e.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))})}function g(e,t,n){e.operation(function(){for(var o=a(e,t);o.findNext();)if('string'!=typeof t){var r=e.getRange(o.from(),o.to()).match(t);o.replace(n.replace(/\$(\d)/g,function(e,t){return r[t]}))}else o.replace(n)})}function f(e,t){if(!e.getOption('readOnly')){var n=e.getSelection()||o(e).lastQuery,r=t?'Replace all:':'Replace:';s(e,r+b,r,n,function(n){n&&(n=p(n),s(e,v,'Replace with:','',function(o){if(o=l(o),t)g(e,n,o);else{m(e);var r=a(e,n,e.getCursor('from')),i=function(){var t=r.from(),l;!(l=r.findNext())&&(r=a(e,n),!(l=r.findNext())||t&&r.from().line==t.line&&r.from().ch==t.ch)||(e.setSelection(r.from(),r.to()),e.scrollIntoView({from:r.from(),to:r.to()}),d(e,x,'Replace?',[function(){s(l)},i,function(){g(e,n,o)}]))},s=function(e){r.replace('string'==typeof n?o:o.replace(/\$(\d)/g,function(t,n){return e[n]})),i()};i()}}))})}}var y='Search: (Use /re/ syntax for regexp search)',b=' (Use /re/ syntax for regexp search)',v='With: ',x='Replace? ';e.commands.find=function(e){m(e),u(e)},e.commands.findPersistent=function(e){m(e),u(e,!1,!0)},e.commands.findNext=u,e.commands.findPrev=function(e){u(e,!0)},e.commands.clearSearch=m,e.commands.replace=f,e.commands.replaceAll=function(e){f(e,!0)}}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(t){function e(e,t,n){var o=e.getWrapperElement(),r;return r=o.appendChild(document.createElement('div')),r.className=n?'CodeMirror-dialog CodeMirror-dialog-bottom':'CodeMirror-dialog CodeMirror-dialog-top','string'==typeof t?r.innerHTML=t:r.appendChild(t),r}function n(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}t.defineExtension('openDialog',function(o,r,a){function i(e){if('string'==typeof e)p.value=e;else{if(d)return;d=!0,s.parentNode.removeChild(s),l.focus(),a.onClose&&a.onClose(s)}}a||(a={}),n(this,null);var s=e(this,o,a.bottom),d=!1,l=this,p=s.getElementsByTagName('input')[0],c;return p?(p.focus(),a.value&&(p.value=a.value,!1!==a.selectValueOnOpen&&p.select()),a.onInput&&t.on(p,'input',function(t){a.onInput(t,p.value,i)}),a.onKeyUp&&t.on(p,'keyup',function(t){a.onKeyUp(t,p.value,i)}),t.on(p,'keydown',function(n){a&&a.onKeyDown&&a.onKeyDown(n,p.value,i)||((27==n.keyCode||!1!==a.closeOnEnter&&13==n.keyCode)&&(p.blur(),t.e_stop(n),i()),13==n.keyCode&&r(p.value,n))}),!1!==a.closeOnBlur&&t.on(p,'blur',i)):(c=s.getElementsByTagName('button')[0])&&(t.on(c,'click',function(){i(),l.focus()}),!1!==a.closeOnBlur&&t.on(c,'blur',i),c.focus()),i}),t.defineExtension('openConfirm',function(o,r,a){function s(){p||(p=!0,d.parentNode.removeChild(d),c.focus())}n(this,null);var d=e(this,o,a&&a.bottom),l=d.getElementsByTagName('button'),p=!1,c=this,u=1;l[0].focus();for(var h=0,i;h=u&&s()},200)}),t.on(i,'focus',function(){++u})}),t.defineExtension('openNotification',function(o,r){function a(){s||(s=!0,clearTimeout(l),i.parentNode.removeChild(i))}n(this,a);var i=e(this,o,r&&r.bottom),s=!1,d=r&&'undefined'!=typeof r.duration?r.duration:5e3,l;return t.on(i,'click',function(n){t.e_preventDefault(n),a()}),d&&(l=setTimeout(a,d)),a})}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror'),require('../dialog/dialog')):'function'==typeof define&&define.amd?define(['../../lib/codemirror','../dialog/dialog'],e):e(CodeMirror)}(function(e){'use strict';function t(e,t,n,o,r){e.openDialog?e.openDialog(t,r,{value:o,selectValueOnOpen:!0}):r(prompt(n,o))}function n(e,t){var n=+t;return /^[-+]/.test(t)?e.getCursor().line+n:n-1}e.commands.jumpToLine=function(e){var o=e.getCursor();t(e,'Jump to line: (Use line:column or scroll% syntax)','Jump to line:',o.line+1+':'+o.ch,function(t){if(t){var r;if(r=/^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(t))e.setCursor(n(e,r[1]),+r[2]);else if(r=/^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(t)){var a=Math.round(e.lineCount()*+r[1]/100);/^[-+]/.test(r[1])&&(a=o.line+a+1),e.setCursor(a-1,o.ch)}else(r=/^\s*\:?\s*([\+\-]?\d+)\s*/.exec(t))&&e.setCursor(n(e,r[1]),o.ch)}})},e.keyMap['default']['Alt-G']='jumpToLine'}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(e){'use strict';var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode('xml',function(o,r){function a(e,t){function n(n){return t.tokenize=n,n(e,t)}var o=e.next();if('<'==o)return e.eat('!')?e.eat('[')?e.match('CDATA[')?n(d('atom',']]>')):null:e.match('--')?n(d('comment','-->')):e.match('DOCTYPE',!0,!0)?(e.eatWhile(/[\w\._\-]/),n(l(1))):null:e.eat('?')?(e.eatWhile(/[\w\._\-]/),t.tokenize=d('meta','?>'),'meta'):(w=e.eat('/')?'closeTag':'openTag',t.tokenize=i,'tag bracket');if('&'==o){var r;return r=e.eat('#')?e.eat('x')?e.eatWhile(/[a-fA-F\d]/)&&e.eat(';'):e.eatWhile(/[\d]/)&&e.eat(';'):e.eatWhile(/[\w\.\-:]/)&&e.eat(';'),r?'atom':'error'}return e.eatWhile(/[^&<]/),null}function i(e,t){var n=e.next();if('>'==n||'/'==n&&e.eat('>'))return t.tokenize=a,w='>'==n?'endTag':'selfcloseTag','tag bracket';if('='==n)return w='equals',null;if('<'==n){t.tokenize=a,t.state=h,t.tagName=t.tagStart=null;var o=t.tokenize(e,t);return o?o+' tag error':'tag error'}return /[\'\"]/.test(n)?(t.tokenize=s(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),'word')}function s(e){var t=function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=i;break}return'string'};return t.isInAttribute=!0,t}function d(e,t){return function(n,o){for(;!n.eol();){if(n.match(t)){o.tokenize=a;break}n.next()}return e}}function l(e){return function(t,n){for(var o;null!=(o=t.next());){if('<'==o)return n.tokenize=l(e+1),n.tokenize(t,n);if('>'==o)if(1==e){n.tokenize=a;break}else return n.tokenize=l(e-1),n.tokenize(t,n)}return'meta'}}function p(e,t,n){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=n,(E.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function c(e){e.context&&(e.context=e.context.prev)}function u(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!E.contextGrabbers.hasOwnProperty(n)||!E.contextGrabbers[n].hasOwnProperty(t))return;c(e)}}function h(e,t,n){return'openTag'==e?(n.tagStart=t.column(),m):'closeTag'==e?g:h}function m(e,t,n){return'word'==e?(n.tagName=t.current(),I='tag',b):(I='error',m)}function g(e,t,n){if('word'==e){var o=t.current();return n.context&&n.context.tagName!=o&&E.implicitlyClosed.hasOwnProperty(n.context.tagName)&&c(n),n.context&&n.context.tagName==o||!1===E.matchClosing?(I='tag',f):(I='tag error',y)}return I='error',y}function f(e,t,n){return'endTag'==e?(c(n),h):(I='error',f)}function y(e,t,n){return I='error',f(e,t,n)}function b(e,t,n){if('word'==e)return I='attribute',v;if('endTag'==e||'selfcloseTag'==e){var o=n.tagName,r=n.tagStart;return n.tagName=n.tagStart=null,'selfcloseTag'==e||E.autoSelfClosers.hasOwnProperty(o)?u(n,o):(u(n,o),n.context=new p(n,o,r==n.indented)),h}return I='error',b}function v(e,t,n){return'equals'==e?x:(E.allowMissing||(I='error'),b(e,t,n))}function x(e,t,n){return'string'==e?C:'word'==e&&E.allowUnquoted?(I='string',b):(I='error',b(e,t,n))}function C(e,t,n){return'string'==e?C:b(e,t,n)}var S=o.indentUnit,E={},k=r.htmlMode?t:n;for(var T in k)E[T]=k[T];for(var T in r)E[T]=r[T];var w,I;return a.isInText=!0,{startState:function(e){var t={tokenize:a,state:h,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;w=null;var n=t.tokenize(e,t);return(n||w)&&'comment'!=n&&(I=null,t.state=t.state(w||n,e,t),I&&(n='error'==I?n+' error':I)),n},indent:function(t,n,o){var r=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+S;if(r&&r.noIndent)return e.Pass;if(t.tokenize!=i&&t.tokenize!=a)return o?o.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1===E.multilineTagIndentPastTag?t.tagStart+S*(E.multilineTagIndentFactor||1):t.tagStart+t.tagName.length+2;if(E.alignCDATA&&/$/,blockCommentStart:'',configuration:E.htmlMode?'html':'xml',helperType:E.htmlMode?'html':'xml',skipAttribute:function(e){e.state==x&&(e.state=b)}}}),e.defineMIME('text/xml','xml'),e.defineMIME('application/xml','xml'),e.mimeModes.hasOwnProperty('text/html')||e.defineMIME('text/html',{name:'xml',htmlMode:!0})}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(e){'use strict';function t(e,t,n){return /^(?:operator|sof|keyword c|case|new|[\[{}\(,;:]|=>)$/.test(t.lastType)||'quasi'==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}e.defineMode('javascript',function(n,o){function r(e){for(var t=!1,n=!1,o;null!=(o=e.next());){if(!t){if('/'==o&&!n)return;'['==o?n=!0:n&&']'==o&&(n=!1)}t=!t&&'\\'==o}}function a(e,t,n){return Pe=e,De=n,t}function s(e,n){var o=e.next();if('"'==o||'\''==o)return n.tokenize=i(o),n.tokenize(e,n);if('.'==o&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return a('number','number');if('.'==o&&e.match('..'))return a('spread','meta');if(/[\[\]{}\(\),;\:\.]/.test(o))return a(o);if('='==o&&e.eat('>'))return a('=>','operator');if('0'==o&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),a('number','number');if('0'==o&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),a('number','number');if('0'==o&&e.eat(/b/i))return e.eatWhile(/[01]/i),a('number','number');if(/\d/.test(o))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),a('number','number');if('/'==o)return e.eat('*')?(n.tokenize=d,d(e,n)):e.eat('/')?(e.skipToEnd(),a('comment','comment')):t(e,n,1)?(r(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),a('regexp','string-2')):(e.eatWhile(Ie),a('operator','operator',e.current()));if('`'==o)return n.tokenize=l,l(e,n);if('#'==o)return e.skipToEnd(),a('error','error');if(Ie.test(o))return e.eatWhile(Ie),a('operator','operator',e.current());if(Te.test(o)){e.eatWhile(Te);var s=e.current(),p=we.propertyIsEnumerable(s)&&we[s];return p&&'.'!=n.lastType?a(p.type,p.style,s):a('variable','variable',s)}}function i(e){return function(t,n){var o=!1,r;if(Se&&'@'==t.peek()&&t.match(Ne))return n.tokenize=s,a('jsonld-keyword','meta');for(;null!=(r=t.next())&&(r!=e||o);)o=!o&&'\\'==r;return o||(n.tokenize=s),a('string','string')}}function d(e,t){for(var n=!1,o;o=e.next();){if('/'==o&&n){t.tokenize=s;break}n='*'==o}return a('comment','comment')}function l(e,t){for(var n=!1,o;null!=(o=e.next());){if(!n&&('`'==o||'$'==o&&e.eat('{'))){t.tokenize=s;break}n=!n&&'\\'==o}return a('quasi','string-2',e.current())}function p(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf('=>',e.start);if(!(0>n)){for(var o=0,r=!1,a=n-1;0<=a;--a){var i=e.string.charAt(a),s=Ae.indexOf(i);if(0<=s&&3>s){if(!o){++a;break}if(0==--o)break}else if(3<=s&&6>s)++o;else if(Te.test(i))r=!0;else{if(/["'\/]/.test(i))return;if(r&&!o){++a;break}}}r&&!o&&(t.fatArrowAt=a)}}function c(e,t,n,o,r,a){this.indented=e,this.column=t,this.type=n,this.prev=r,this.info=a,null!=o&&(this.align=o)}function u(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var o=e.context;o;o=o.prev)for(var n=o.vars;n;n=n.next)if(n.name==t)return!0}function h(e,t,n,o,r){var a=e.cc;for(Re.state=e,Re.stream=r,Re.marked=null,Re.cc=a,Re.style=t,e.lexical.hasOwnProperty('align')||(e.lexical.align=!0);;){var i=a.length?a.pop():Ee?E:S;if(i(n,o)){for(;a.length&&a[a.length-1].lex;)a.pop()();return Re.marked?Re.marked:'variable'==n&&u(e,o)?'variable-2':t}}}function m(){for(var e=arguments.length-1;0<=e;e--)Re.cc.push(arguments[e])}function g(){return m.apply(null,arguments),!0}function f(e){function t(t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}var n=Re.state;if(Re.marked='def',n.context){if(t(n.localVars))return;n.localVars={name:e,next:n.localVars}}else{if(t(n.globalVars))return;o.globalVars&&(n.globalVars={name:e,next:n.globalVars})}}function y(){Re.state.context={prev:Re.state.context,vars:Re.state.localVars},Re.state.localVars=Oe}function b(){Re.state.localVars=Re.state.context.vars,Re.state.context=Re.state.context.prev}function v(e,t){var n=function(){var n=Re.state,o=n.indented;if('stat'==n.lexical.type)o=n.lexical.indented;else for(var r=n.lexical;r&&')'==r.type&&r.align;r=r.prev)o=r.indented;n.lexical=new c(o,Re.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function x(){var e=Re.state;e.lexical.prev&&(')'==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function C(e){function t(n){return n==e?g():';'==e?m():g(t)}return t}function S(e,t){return'var'==e?g(v('vardef',t.length),X,C(';'),x):'keyword a'==e?g(v('form'),E,S,x):'keyword b'==e?g(v('form'),S,x):'{'==e?g(v('}'),j,x):';'==e?g():'if'==e?('else'==Re.state.lexical.info&&Re.state.cc[Re.state.cc.length-1]==x&&Re.state.cc.pop()(),g(v('form'),E,S,x,Z)):'function'==e?g(ae):'for'==e?g(v('form'),ee,S,x):'variable'==e?g(v('stat'),F):'switch'==e?g(v('form'),E,v('}','switch'),C('{'),j,x,x):'case'==e?g(E,C(':')):'default'==e?g(C(':')):'catch'==e?g(v('form'),y,C('('),ie,C(')'),S,x,b):'class'==e?g(v('form'),se,x):'export'==e?g(v('stat'),ce,x):'import'==e?g(v('stat'),ue,x):'module'==e?g(v('form'),Q,v('}'),C('{'),j,x,x):m(v('stat'),E,C(';'),x)}function E(e){return T(e,!1)}function k(e){return T(e,!0)}function T(e,t){if(Re.state.fatArrowAt==Re.stream.start){var n=t?P:O;if('('==e)return g(y,v(')'),H(Q,')'),x,C('=>'),n,b);if('variable'==e)return m(y,Q,C('=>'),n,b)}var o=t?A:N;return Le.hasOwnProperty(e)?g(o):'function'==e?g(ae,o):'keyword c'==e?g(t?I:w):'('==e?g(v(')'),w,be,C(')'),x,o):'operator'==e||'spread'==e?g(t?k:E):'['==e?g(v(']'),fe,x,o):'{'==e?q(U,'}',null,o):'quasi'==e?m(L,o):'new'==e?g(D(t)):g()}function w(e){return e.match(/[;\}\)\],]/)?m():m(E)}function I(e){return e.match(/[;\}\)\],]/)?m():m(k)}function N(e,t){return','==e?g(E):A(e,t,!1)}function A(e,t,n){var o=!1==n?N:A,r=!1==n?E:k;return'=>'==e?g(y,n?P:O,b):'operator'==e?/\+\+|--/.test(t)?g(o):'?'==t?g(E,C(':'),r):g(r):'quasi'==e?m(L,o):';'==e?void 0:'('==e?q(k,')','call',o):'.'==e?g(B,o):'['==e?g(v(']'),w,C(']'),x,o):void 0}function L(e,t){return'quasi'==e?'${'==t.slice(t.length-2)?g(E,R):g(L):m()}function R(e){if('}'==e)return Re.marked='string-2',Re.state.tokenize=l,g(L)}function O(e){return p(Re.stream,Re.state),m('{'==e?S:E)}function P(e){return p(Re.stream,Re.state),m('{'==e?S:k)}function D(e){return function(t){return'.'==t?g(e?M:_):m(e?k:E)}}function _(e,t){if('target'==t)return Re.marked='keyword',g(N)}function M(e,t){if('target'==t)return Re.marked='keyword',g(A)}function F(e){return':'==e?g(x,S):m(N,C(';'),x)}function B(e){if('variable'==e)return Re.marked='property',g()}function U(e,t){return'variable'==e||'keyword'==Re.style?(Re.marked='property','get'==t||'set'==t?g(V):g(W)):'number'==e||'string'==e?(Re.marked=Se?'property':Re.style+' property',g(W)):'jsonld-keyword'==e?g(W):'modifier'==e?g(U):'['==e?g(E,C(']'),W):'spread'==e?g(E):void 0}function V(e){return'variable'==e?(Re.marked='property',g(ae)):m(W)}function W(e){return':'==e?g(k):'('==e?m(ae):void 0}function H(e,t){function n(o){if(','==o){var r=Re.state.lexical;return'call'==r.info&&(r.pos=(r.pos||0)+1),g(e,n)}return o==t?g():g(C(t))}return function(o){return o==t?g():m(e,n)}}function q(e,t,n){for(var o=3;o!?|~^]/,Ne=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Ae='([{}])',Le={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},Re={state:null,column:null,marked:null,cc:null},Oe={name:'this',next:{name:'arguments'}},Pe,De;return x.lex=!0,{startState:function(e){var t={tokenize:s,lastType:'sof',cc:[],lexical:new c((e||0)-xe,0,'block',!1),localVars:o.localVars,context:o.localVars&&{vars:o.localVars},indented:e||0};return o.globalVars&&'object'==typeof o.globalVars&&(t.globalVars=o.globalVars),t},token:function(e,t){if(e.sol()&&(!t.lexical.hasOwnProperty('align')&&(t.lexical.align=!1),t.indented=e.indentation(),p(e,t)),t.tokenize!=d&&e.eatSpace())return null;var n=t.tokenize(e,t);return'comment'==Pe?n:(t.lastType='operator'==Pe&&('++'==De||'--'==De)?'incdec':Pe,h(t,n,Pe,De,e))},indent:function(t,n){if(t.tokenize==d)return e.Pass;if(t.tokenize!=s)return 0;var r=n&&n.charAt(0),a=t.lexical;if(!/^\s*else\b/.test(n))for(var l=t.cc.length-1,i;0<=l;--l)if(i=t.cc[l],i==x)a=a.prev;else if(i!=Z)break;'stat'==a.type&&'}'==r&&(a=a.prev),Ce&&')'==a.type&&'stat'==a.prev.type&&(a=a.prev);var p=a.type,c=r==p;return'vardef'==p?a.indented+('operator'==t.lastType||','==t.lastType?a.info+1:0):'form'==p&&'{'==r?a.indented:'form'==p?a.indented+xe:'stat'==p?a.indented+(ve(t,n)?Ce||xe:0):'switch'!=a.info||c||!1==o.doubleIndentSwitch?a.align?a.column+(c?0:1):a.indented+(c?0:xe):a.indented+(/^(?:case|default)\b/.test(n)?xe:2*xe)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Ee?null:'/*',blockCommentEnd:Ee?null:'*/',lineComment:Ee?null:'//',fold:'brace',closeBrackets:'()[]{}\'\'""``',helperType:Ee?'json':'javascript',jsonldMode:Se,jsonMode:Ee,expressionAllowed:t,skipExpression:function(e){var t=e.cc[e.cc.length-1];(t==E||t==k)&&e.cc.pop()}}}),e.registerHelper('wordChars','javascript',/[\w$]/),e.defineMIME('text/javascript','javascript'),e.defineMIME('text/ecmascript','javascript'),e.defineMIME('application/javascript','javascript'),e.defineMIME('application/x-javascript','javascript'),e.defineMIME('application/ecmascript','javascript'),e.defineMIME('application/json',{name:'javascript',json:!0}),e.defineMIME('application/x-json',{name:'javascript',json:!0}),e.defineMIME('application/ld+json',{name:'javascript',jsonld:!0}),e.defineMIME('text/typescript',{name:'javascript',typescript:!0}),e.defineMIME('application/typescript',{name:'javascript',typescript:!0})}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror)}(function(e){'use strict';function t(e){for(var t={},n=0;n*\/]/.test(n)?o(null,'select-op'):'.'==n&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?o('qualifier','qualifier'):/[:;{}\[\]\(\)]/.test(n)?o(null,n):'u'==n&&e.match(/rl(-prefix)?\(/)||'d'==n&&e.match('omain(')||'r'==n&&e.match('egexp(')?(e.backUp(1),t.tokenize=i,o('property','word')):/[\w\\\-]/.test(n)?(e.eatWhile(/[\w\\\-]/),o('property','word')):o(null,null)}function a(e){return function(t,n){for(var r=!1,a;null!=(a=t.next());){if(a==e&&!r){')'==e&&t.backUp(1);break}r=!r&&'\\'==a}return a!=e&&(r||')'==e)||(n.tokenize=null),o('string','string')}}function i(e,t){return e.next(),t.tokenize=e.match(/\s*[\"\')]/,!1)?null:a(')'),o(null,'(')}function s(e,t,n){this.type=e,this.indent=t,this.prev=n}function d(e,t,n,o){return e.context=new s(n,t.indentation()+(!1===o?0:m),e.context),n}function l(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function p(e,t,n){return N[n.context.type](e,t,n)}function c(e,t,o,r){for(var n=r||1;0','i')}function a(e,t){for(var n in e)for(var o=t[n]||(t[n]=[]),r=e[n],a=r.length-1;0<=a;a--)o.unshift(r[a])}function i(e,t){for(var n=0,r;n\s\/]/.test(o.current())&&(u=a.htmlState.tagName&&a.htmlState.tagName.toLowerCase())&&p.hasOwnProperty(u))a.inTag=u+' ';else if(a.inTag&&c&&/>$/.test(o.current())){var h=/^([\S]+) (.*)/.exec(a.inTag);a.inTag=null;var m='>'==o.current()&&i(p[h[1]],h[2]),g=e.getMode(n,m),f=r(h[1],!0),y=r(h[1],!1);a.token=function(e,n){return e.match(f,!1)?(n.token=d,n.localState=n.localMode=null,null):t(e,y,n.localMode.token(e,n.localState))},a.localMode=g,a.localState=e.startState(g,l.indent(a.htmlState,''))}else a.inTag&&(a.inTag+=o.current(),o.eol()&&(a.inTag+=' '));return s}var l=e.getMode(n,{name:'xml',htmlMode:!0,multilineTagIndentFactor:o.multilineTagIndentFactor,multilineTagIndentPastTag:o.multilineTagIndentPastTag}),p={},c=o&&o.tags,u=o&&o.scriptTypes;if(a(s,p),c&&a(c,p),u)for(var h=u.length-1;0<=h;h--)p.script.unshift(['type',u[h].matches,u[h].mode]);return{startState:function(){var e=l.startState();return{token:d,inTag:null,localMode:null,localState:null,htmlState:e}},copyState:function(t){var n;return t.localState&&(n=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:n,htmlState:e.copyState(l,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,n){return!t.localMode||/^\s*<\//.test(n)?l.indent(t.htmlState,n):t.localMode.indent?t.localMode.indent(t.localState,n):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||l}}}},'xml','javascript','css'),e.defineMIME('text/html','htmlmixed')}),function(e){'object'==typeof exports&&'object'==typeof module?e(require('../lib/codemirror'),require('../addon/search/searchcursor'),require('../addon/edit/matchbrackets')):'function'==typeof define&&define.amd?define(['../lib/codemirror','../addon/search/searchcursor','../addon/edit/matchbrackets'],e):e(CodeMirror)}(function(e){'use strict';function t(t,n,o){if(0>o&&0==n.ch)return t.clipPos(u(n.line-1));var r=t.getLine(n.line);if(0=r.length)return t.clipPos(u(n.line+1,0));for(var a='start',s=n.ch,d=0>o?0:r.length,l=0,i;s!=d;s+=o,l++){var p=r.charAt(0>o?s-1:s),c='_'!=p&&e.isWordChar(p)?'w':'o';if('w'==c&&p.toUpperCase()==p&&(c='W'),'start'==a)'o'!=c&&(a='in',i=c);else if('in'==a&&i!=c){if('w'==i&&'W'==c&&0>o&&s--,'W'==i&&'w'==c&&0n?o.from():o.to()})}function o(t,n){return t.isReadOnly()?e.Pass:void t.operation(function(){for(var e=t.listSelections().length,o=[],r=-1,a=0,i;a=n&&e.execCommand('goLineUp')}e.scrollTo(null,t.top-e.defaultTextHeight())},c[p[g+'Down']='scrollLineDown']=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top,'local')+1;e.getCursor().line<=n&&e.execCommand('goLineDown')}e.scrollTo(null,t.top+e.defaultTextHeight())},c[p['Shift-'+m+'L']='splitSelectionByLine']=function(e){for(var t=e.listSelections(),n=[],o=0;or.line&&i==a.line&&0==a.ch||n.push({anchor:i==r.line?r:u(i,0),head:i==a.line?a:u(i)});e.setSelections(n,0)},p['Shift-Tab']='indentLess',c[p.Esc='singleSelectionTop']=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},c[p[m+'L']='selectLine']=function(e){for(var t=e.listSelections(),n=[],o=0,r;or?o.push(d,l):o.length&&(o[o.length-1]=l),r=l}t.operation(function(){for(var e=0;et.lastLine()?t.replaceRange('\n'+i,u(t.lastLine()),null,'+swapLine'):t.replaceRange(i+'\n',u(r,0),null,'+swapLine')}t.setSelections(a),t.scrollIntoView()})},c[p[y+'Down']='swapLineDown']=function(t){if(t.isReadOnly())return e.Pass;for(var n=t.listSelections(),o=[],r=t.lastLine()+1,a=n.length-1;0<=a;a--){var i=n[a],s=i.to().line+1,d=i.from().line;0!=i.to().ch||i.empty()||s--,se.firstLine()&&e.addSelection(u(o.head.line-1,o.head.ch))})},c[p['Shift-Alt-Down']='selectLinesDownward']=function(e){e.operation(function(){for(var t=e.listSelections(),n=0,o;n',type:'keyToKey',toKeys:'h'},{keys:'',type:'keyToKey',toKeys:'l'},{keys:'',type:'keyToKey',toKeys:'k'},{keys:'',type:'keyToKey',toKeys:'j'},{keys:'',type:'keyToKey',toKeys:'l'},{keys:'',type:'keyToKey',toKeys:'h',context:'normal'},{keys:'',type:'keyToKey',toKeys:'W'},{keys:'',type:'keyToKey',toKeys:'B',context:'normal'},{keys:'',type:'keyToKey',toKeys:'w'},{keys:'',type:'keyToKey',toKeys:'b',context:'normal'},{keys:'',type:'keyToKey',toKeys:'j'},{keys:'',type:'keyToKey',toKeys:'k'},{keys:'',type:'keyToKey',toKeys:''},{keys:'',type:'keyToKey',toKeys:''},{keys:'',type:'keyToKey',toKeys:'',context:'insert'},{keys:'',type:'keyToKey',toKeys:'',context:'insert'},{keys:'s',type:'keyToKey',toKeys:'cl',context:'normal'},{keys:'s',type:'keyToKey',toKeys:'c',context:'visual'},{keys:'S',type:'keyToKey',toKeys:'cc',context:'normal'},{keys:'S',type:'keyToKey',toKeys:'VdO',context:'visual'},{keys:'',type:'keyToKey',toKeys:'0'},{keys:'',type:'keyToKey',toKeys:'$'},{keys:'',type:'keyToKey',toKeys:''},{keys:'',type:'keyToKey',toKeys:''},{keys:'',type:'keyToKey',toKeys:'j^',context:'normal'},{keys:'',type:'action',action:'toggleOverwrite',context:'insert'},{keys:'H',type:'motion',motion:'moveToTopLine',motionArgs:{linewise:!0,toJumplist:!0}},{keys:'M',type:'motion',motion:'moveToMiddleLine',motionArgs:{linewise:!0,toJumplist:!0}},{keys:'L',type:'motion',motion:'moveToBottomLine',motionArgs:{linewise:!0,toJumplist:!0}},{keys:'h',type:'motion',motion:'moveByCharacters',motionArgs:{forward:!1}},{keys:'l',type:'motion',motion:'moveByCharacters',motionArgs:{forward:!0}},{keys:'j',type:'motion',motion:'moveByLines',motionArgs:{forward:!0,linewise:!0}},{keys:'k',type:'motion',motion:'moveByLines',motionArgs:{forward:!1,linewise:!0}},{keys:'gj',type:'motion',motion:'moveByDisplayLines',motionArgs:{forward:!0}},{keys:'gk',type:'motion',motion:'moveByDisplayLines',motionArgs:{forward:!1}},{keys:'w',type:'motion',motion:'moveByWords',motionArgs:{forward:!0,wordEnd:!1}},{keys:'W',type:'motion',motion:'moveByWords',motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:'e',type:'motion',motion:'moveByWords',motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:'E',type:'motion',motion:'moveByWords',motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:'b',type:'motion',motion:'moveByWords',motionArgs:{forward:!1,wordEnd:!1}},{keys:'B',type:'motion',motion:'moveByWords',motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:'ge',type:'motion',motion:'moveByWords',motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:'gE',type:'motion',motion:'moveByWords',motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:'{',type:'motion',motion:'moveByParagraph',motionArgs:{forward:!1,toJumplist:!0}},{keys:'}',type:'motion',motion:'moveByParagraph',motionArgs:{forward:!0,toJumplist:!0}},{keys:'',type:'motion',motion:'moveByPage',motionArgs:{forward:!0}},{keys:'',type:'motion',motion:'moveByPage',motionArgs:{forward:!1}},{keys:'',type:'motion',motion:'moveByScroll',motionArgs:{forward:!0,explicitRepeat:!0}},{keys:'',type:'motion',motion:'moveByScroll',motionArgs:{forward:!1,explicitRepeat:!0}},{keys:'gg',type:'motion',motion:'moveToLineOrEdgeOfDocument',motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:'G',type:'motion',motion:'moveToLineOrEdgeOfDocument',motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:'0',type:'motion',motion:'moveToStartOfLine'},{keys:'^',type:'motion',motion:'moveToFirstNonWhiteSpaceCharacter'},{keys:'+',type:'motion',motion:'moveByLines',motionArgs:{forward:!0,toFirstChar:!0}},{keys:'-',type:'motion',motion:'moveByLines',motionArgs:{forward:!1,toFirstChar:!0}},{keys:'_',type:'motion',motion:'moveByLines',motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:'$',type:'motion',motion:'moveToEol',motionArgs:{inclusive:!0}},{keys:'%',type:'motion',motion:'moveToMatchedSymbol',motionArgs:{inclusive:!0,toJumplist:!0}},{keys:'f',type:'motion',motion:'moveToCharacter',motionArgs:{forward:!0,inclusive:!0}},{keys:'F',type:'motion',motion:'moveToCharacter',motionArgs:{forward:!1}},{keys:'t',type:'motion',motion:'moveTillCharacter',motionArgs:{forward:!0,inclusive:!0}},{keys:'T',type:'motion',motion:'moveTillCharacter',motionArgs:{forward:!1}},{keys:';',type:'motion',motion:'repeatLastCharacterSearch',motionArgs:{forward:!0}},{keys:',',type:'motion',motion:'repeatLastCharacterSearch',motionArgs:{forward:!1}},{keys:'\'',type:'motion',motion:'goToMark',motionArgs:{toJumplist:!0,linewise:!0}},{keys:'`',type:'motion',motion:'goToMark',motionArgs:{toJumplist:!0}},{keys:']`',type:'motion',motion:'jumpToMark',motionArgs:{forward:!0}},{keys:'[`',type:'motion',motion:'jumpToMark',motionArgs:{forward:!1}},{keys:']\'',type:'motion',motion:'jumpToMark',motionArgs:{forward:!0,linewise:!0}},{keys:'[\'',type:'motion',motion:'jumpToMark',motionArgs:{forward:!1,linewise:!0}},{keys:']p',type:'action',action:'paste',isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:'[p',type:'action',action:'paste',isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:']',type:'motion',motion:'moveToSymbol',motionArgs:{forward:!0,toJumplist:!0}},{keys:'[',type:'motion',motion:'moveToSymbol',motionArgs:{forward:!1,toJumplist:!0}},{keys:'|',type:'motion',motion:'moveToColumn'},{keys:'o',type:'motion',motion:'moveToOtherHighlightedEnd',context:'visual'},{keys:'O',type:'motion',motion:'moveToOtherHighlightedEnd',motionArgs:{sameLine:!0},context:'visual'},{keys:'d',type:'operator',operator:'delete'},{keys:'y',type:'operator',operator:'yank'},{keys:'c',type:'operator',operator:'change'},{keys:'>',type:'operator',operator:'indent',operatorArgs:{indentRight:!0}},{keys:'<',type:'operator',operator:'indent',operatorArgs:{indentRight:!1}},{keys:'g~',type:'operator',operator:'changeCase'},{keys:'gu',type:'operator',operator:'changeCase',operatorArgs:{toLower:!0},isEdit:!0},{keys:'gU',type:'operator',operator:'changeCase',operatorArgs:{toLower:!1},isEdit:!0},{keys:'n',type:'motion',motion:'findNext',motionArgs:{forward:!0,toJumplist:!0}},{keys:'N',type:'motion',motion:'findNext',motionArgs:{forward:!1,toJumplist:!0}},{keys:'x',type:'operatorMotion',operator:'delete',motion:'moveByCharacters',motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:'X',type:'operatorMotion',operator:'delete',motion:'moveByCharacters',motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:'D',type:'operatorMotion',operator:'delete',motion:'moveToEol',motionArgs:{inclusive:!0},context:'normal'},{keys:'D',type:'operator',operator:'delete',operatorArgs:{linewise:!0},context:'visual'},{keys:'Y',type:'operatorMotion',operator:'yank',motion:'expandToLine',motionArgs:{linewise:!0},context:'normal'},{keys:'Y',type:'operator',operator:'yank',operatorArgs:{linewise:!0},context:'visual'},{keys:'C',type:'operatorMotion',operator:'change',motion:'moveToEol',motionArgs:{inclusive:!0},context:'normal'},{keys:'C',type:'operator',operator:'change',operatorArgs:{linewise:!0},context:'visual'},{keys:'~',type:'operatorMotion',operator:'changeCase',motion:'moveByCharacters',motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:'normal'},{keys:'~',type:'operator',operator:'changeCase',context:'visual'},{keys:'',type:'operatorMotion',operator:'delete',motion:'moveByWords',motionArgs:{forward:!1,wordEnd:!1},context:'insert'},{keys:'',type:'action',action:'jumpListWalk',actionArgs:{forward:!0}},{keys:'',type:'action',action:'jumpListWalk',actionArgs:{forward:!1}},{keys:'',type:'action',action:'scroll',actionArgs:{forward:!0,linewise:!0}},{keys:'',type:'action',action:'scroll',actionArgs:{forward:!1,linewise:!0}},{keys:'a',type:'action',action:'enterInsertMode',isEdit:!0,actionArgs:{insertAt:'charAfter'},context:'normal'},{keys:'A',type:'action',action:'enterInsertMode',isEdit:!0,actionArgs:{insertAt:'eol'},context:'normal'},{keys:'A',type:'action',action:'enterInsertMode',isEdit:!0,actionArgs:{insertAt:'endOfSelectedArea'},context:'visual'},{keys:'i',type:'action',action:'enterInsertMode',isEdit:!0,actionArgs:{insertAt:'inplace'},context:'normal'},{keys:'I',type:'action',action:'enterInsertMode',isEdit:!0,actionArgs:{insertAt:'firstNonBlank'},context:'normal'},{keys:'I',type:'action',action:'enterInsertMode',isEdit:!0,actionArgs:{insertAt:'startOfSelectedArea'},context:'visual'},{keys:'o',type:'action',action:'newLineAndEnterInsertMode',isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:'normal'},{keys:'O',type:'action',action:'newLineAndEnterInsertMode',isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:'normal'},{keys:'v',type:'action',action:'toggleVisualMode'},{keys:'V',type:'action',action:'toggleVisualMode',actionArgs:{linewise:!0}},{keys:'',type:'action',action:'toggleVisualMode',actionArgs:{blockwise:!0}},{keys:'',type:'action',action:'toggleVisualMode',actionArgs:{blockwise:!0}},{keys:'gv',type:'action',action:'reselectLastSelection'},{keys:'J',type:'action',action:'joinLines',isEdit:!0},{keys:'p',type:'action',action:'paste',isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:'P',type:'action',action:'paste',isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:'r',type:'action',action:'replace',isEdit:!0},{keys:'@',type:'action',action:'replayMacro'},{keys:'q',type:'action',action:'enterMacroRecordMode'},{keys:'R',type:'action',action:'enterInsertMode',isEdit:!0,actionArgs:{replace:!0}},{keys:'u',type:'action',action:'undo',context:'normal'},{keys:'u',type:'operator',operator:'changeCase',operatorArgs:{toLower:!0},context:'visual',isEdit:!0},{keys:'U',type:'operator',operator:'changeCase',operatorArgs:{toLower:!1},context:'visual',isEdit:!0},{keys:'',type:'action',action:'redo'},{keys:'m',type:'action',action:'setMark'},{keys:'"',type:'action',action:'setRegister'},{keys:'zz',type:'action',action:'scrollToCursor',actionArgs:{position:'center'}},{keys:'z.',type:'action',action:'scrollToCursor',actionArgs:{position:'center'},motion:'moveToFirstNonWhiteSpaceCharacter'},{keys:'zt',type:'action',action:'scrollToCursor',actionArgs:{position:'top'}},{keys:'z',type:'action',action:'scrollToCursor',actionArgs:{position:'top'},motion:'moveToFirstNonWhiteSpaceCharacter'},{keys:'z-',type:'action',action:'scrollToCursor',actionArgs:{position:'bottom'}},{keys:'zb',type:'action',action:'scrollToCursor',actionArgs:{position:'bottom'},motion:'moveToFirstNonWhiteSpaceCharacter'},{keys:'.',type:'action',action:'repeatLastEdit'},{keys:'',type:'action',action:'incrementNumberToken',isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:'',type:'action',action:'incrementNumberToken',isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:'',type:'action',action:'indent',actionArgs:{indentRight:!0},context:'insert'},{keys:'',type:'action',action:'indent',actionArgs:{indentRight:!1},context:'insert'},{keys:'a',type:'motion',motion:'textObjectManipulation'},{keys:'i',type:'motion',motion:'textObjectManipulation',motionArgs:{textObjectInner:!0}},{keys:'/',type:'search',searchArgs:{forward:!0,querySrc:'prompt',toJumplist:!0}},{keys:'?',type:'search',searchArgs:{forward:!1,querySrc:'prompt',toJumplist:!0}},{keys:'*',type:'search',searchArgs:{forward:!0,querySrc:'wordUnderCursor',wholeWordOnly:!0,toJumplist:!0}},{keys:'#',type:'search',searchArgs:{forward:!1,querySrc:'wordUnderCursor',wholeWordOnly:!0,toJumplist:!0}},{keys:'g*',type:'search',searchArgs:{forward:!0,querySrc:'wordUnderCursor',toJumplist:!0}},{keys:'g#',type:'search',searchArgs:{forward:!1,querySrc:'wordUnderCursor',toJumplist:!0}},{keys:':',type:'ex'}],d=[{name:'colorscheme',shortName:'colo'},{name:'map'},{name:'imap',shortName:'im'},{name:'nmap',shortName:'nm'},{name:'vmap',shortName:'vm'},{name:'unmap'},{name:'write',shortName:'w'},{name:'undo',shortName:'u'},{name:'redo',shortName:'red'},{name:'set',shortName:'se'},{name:'set',shortName:'se'},{name:'setlocal',shortName:'setl'},{name:'setglobal',shortName:'setg'},{name:'sort',shortName:'sor'},{name:'substitute',shortName:'s',possiblyAsync:!0},{name:'nohlsearch',shortName:'noh'},{name:'yank',shortName:'y'},{name:'delmarks',shortName:'delm'},{name:'registers',shortName:'reg',excludeFromCommandHistory:!0},{name:'global',shortName:'g'}],l=t.Pos;t.Vim=function(){function i(e){e.setOption('disableInput',!0),e.setOption('showCursorWhenSelecting',!1),t.signal(e,'vim-mode-change',{mode:'normal'}),e.on('cursorActivity',tt),N(e),t.on(e.getInputField(),'paste',g(e))}function p(e){e.setOption('disableInput',!1),e.off('cursorActivity',tt),t.off(e.getInputField(),'paste',g(e)),e.state.vim=null}function c(e,n){this==t.keyMap.vim&&t.rmClass(e.getWrapperElement(),'cm-fat-cursor'),n&&n.attach==u||p(e,!1)}function u(e,n){this==t.keyMap.vim&&t.addClass(e.getWrapperElement(),'cm-fat-cursor'),n&&n.attach==u||i(e)}function h(e,n){if(n){if(this[e])return this[e];var o=m(e);if(!o)return!1;var r=t.Vim.findKey(n,o);return'function'==typeof r&&t.signal(n,'vim-keypress',o),r}}function m(e){if('\''==e.charAt(0))return e.charAt(1);var t=e.split(/-(?!$)/),n=t[t.length-1];if(1==t.length&&1==t[0].length)return!1;if(2==t.length&&'Shift'==t[0]&&1==n.length)return!1;for(var o=!1,r=0,a;r')}function g(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(B(e.getCursor(),0,1)),wt.enterInsertMode(e,{},t))}),t.onPasteFn}function f(t,n){for(var o=[],r=t;r=e.firstLine()&&t<=e.lastLine()}function b(e){return /^[a-z]$/.test(e)}function v(e){return-1!='()[]{}'.indexOf(e)}function x(e){return pt.test(e)}function C(e){return /^[A-Z]$/.test(e)}function S(e){return /^\s*$/.test(e)}function E(e,t){for(var n=0;n'==t.slice(-11)){var n=t.length-11,o=e.slice(0,n),r=t.slice(0,n);return o==r&&e.length>n?'full':0==r.indexOf(o)&&'partial'}return e==t?'full':0==t.indexOf(e)&&'partial'}function H(e){var t=/^.*(<[\w\-]+>)$/.exec(e),n=t?t[1]:e.slice(-1);if(1':n='\n';break;case'':n=' ';break;default:}return n}function q(e,t,n){return function(){for(var o=0;op?u:0,m=r[h].anchor,g=a(m.line,i.line),f=o(m.line,i.line),y=m.ch,b=i.ch,v=r[h].head.ch-y,x=b-y;0=x?(y++,!s&&b--):0>v&&0<=x?(y--,!c&&b++):0>v&&-1==x&&(y--,b++);for(var C=g,S;C<=f;C++)S={anchor:new l(C,y),head:new l(C,b)},n.push(S);return p=i.line==f?n.length-1:0,e.setSelections(n),t.ch=b,m.ch=y,m}function te(e,t,n){for(var o=[],r=0,a;ru&&(s.line=u),s.ch=Y(e,s.line)}else s.ch=0,d.ch=Y(e,d.line);return{ranges:[{anchor:d,head:s}],primary:0}}if('block'==n){for(var h=a(d.line,s.line),m=a(d.ch,s.ch),g=o(d.line,s.line),f=o(d.ch,s.ch)+1,y=g-h+1,b=s.line==h?0:y-1,v=[],x=0;x=i.length)return null;o?d=ut[0]:(d=ct[0],!d(i.charAt(s))&&(d=ct[1]));for(var p=s,c=s;d(i.charAt(p))&&pc&&!f?f=!0:r=!1,u=d;u>p&&(r&&a(u)!=f&&u!=d||!s(u,-1,!0));u--);return i=new l(u,0),{start:i,end:h}}function ke(e,t,n,o){var r=t,a={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/}[n],i={"(":'(',")":'(',"[":'[',"]":'[',"{":'{',"}":'{'}[n],s=e.getLine(r.line).charAt(r.ch),d=s===i?1:0,p,c;if(p=e.scanForBracket(l(r.line,r.ch+d),-1,null,{bracketRegex:a}),c=e.scanForBracket(l(r.line,r.ch+d),1,null,{bracketRegex:a}),!p||!c)return{start:r,end:r};if(p=p.pos,c=c.pos,p.line==c.line&&p.ch>c.ch||p.line>c.line){var u=p;p=c,c=u}return o?c.ch+=1:p.ch+=1,{start:p,end:c}}function Te(e,t,n,o){var r=j(t),a=e.getLine(r.line),s=a.split(''),d=s.indexOf(n),p,c,u,i;if(r.ch'+t+'',{bottom:!0,duration:5e3}):alert(t)}function Me(e,t){var n=''+(e||'')+'';return t&&(n+=' '+t+''),n}function Fe(e,t){var n=(t.prefix||'')+' '+(t.desc||''),o=Me(t.prefix,t.desc);Ne(e,o,n,t.onClose,t)}function Be(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var n=['global','multiline','ignoreCase','source'],o=0,r;o=t&&e<=n:e==t}function ze(e){var t=e.getScrollInfo(),n=e.coordsChar({left:0,top:6+t.top},'local'),o=t.clientHeight-10+t.top,r=e.coordsChar({left:0,top:o},'local');return{top:n.line,bottom:r.line}}function Ke(e,t,n){if('\''==n){var o=e.doc.history.done,r=o[o.length-2];return r&&r.ranges&&r.ranges[0].head}var a=t.marks[n];return a&&a.find()}function Ge(e,n,o,r,a,i,s,d,l){function p(){e.operation(function(){for(;!m;)c(),u();h()})}function c(){var t=e.getRange(i.from(),i.to()),n=t.replace(s,d);i.replace(n)}function u(){for(;i.findNext()&&je(i.from(),r,a);)if(o||!g||i.from().line!=g.line)return e.scrollIntoView(i.from(),30),e.setSelection(i.from(),i.to()),g=i.from(),void(m=!1);m=!0}function h(t){if(t&&t(),e.focus(),g){e.setCursor(g);var n=e.state.vim;n.exMode=!1,n.lastHPos=n.lastHSPos=g.ch}l&&l()}e.state.vim.exMode=!0;var m=!1,g=i.from();return u(),m?void _e(e,'No matches for '+s.source):n?void Fe(e,{prefix:'replace with '+d+' (y/n/a/q/l)',onKeyDown:function(n,o,r){t.e_stop(n);var a=t.keyName(n);switch(a){case'Y':c(),u();break;case'N':u();break;case'A':var i=l;l=void 0,e.operation(p),l=i;break;case'L':c();case'Q':case'Esc':case'Ctrl-C':case'Ctrl-[':h(r);}return m&&h(r),!0}}):(p(),void(l&&l()))}function Xe(e){var n=e.state.vim,o=Ct.macroModeState,r=Ct.registerController.getRegister('.'),a=o.isPlaying,s=o.lastInsertModeChanges,d=[];if(!a){for(var l=s.inVisualBlock?n.lastSelection.visualBlock.height:1,p=s.changes,d=[],c=0;c|<\w+>|./.exec(i),c=p[0],i=i.substring(p.index+c.length),t.Vim.handleKey(e,c,'macro'),n.insertMode){var u=a.insertModeChanges[d++].changes;Ct.macroModeState.lastInsertModeChanges.changes=u,st(e,u,1),Xe(e)}o.isPlaying=!1}function Je(e,t){if(!e.isPlaying){var n=e.latestRegister,o=Ct.registerController.getRegister(n);o&&o.pushText(t)}}function $e(e){if(!e.isPlaying){var t=e.latestRegister,n=Ct.registerController.getRegister(t);n&&n.pushInsertModeChanges&&n.pushInsertModeChanges(e.lastInsertModeChanges)}}function Ze(e,t){if(!e.isPlaying){var n=e.latestRegister,o=Ct.registerController.getRegister(n);o&&o.pushSearchQuery&&o.pushSearchQuery(t)}}function et(e,t){var n=Ct.macroModeState,o=n.lastInsertModeChanges;if(!n.isPlaying)for(;t;){if(o.expectCursorActivityForChange=!0,'+input'==t.origin||'paste'==t.origin||void 0===t.origin){var r=t.text.join('\n');o.maybeReset&&(o.changes=[],o.maybeReset=!1),o.changes.push(r)}t=t.next}}function tt(e){var t=e.state.vim;if(t.insertMode){var n=Ct.macroModeState;if(n.isPlaying)return;var o=n.lastInsertModeChanges;o.expectCursorActivityForChange?o.expectCursorActivityForChange=!1:o.maybeReset=!0}else e.curOp.isVimOp||ot(e,t);t.visualMode&&nt(e)}function nt(e){var t=e.state.vim,n=M(e,j(t.sel.head)),o=B(n,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(n,o,{className:'cm-animate-fat-cursor'})}function ot(e,n){var o=e.getCursor('anchor'),r=e.getCursor('head');if(n.visualMode&&!e.somethingSelected()?le(e,!1):!n.visualMode&&!n.insertMode&&e.somethingSelected()&&(n.visualMode=!0,n.visualLine=!1,t.signal(e,'vim-mode-change',{mode:'visual'})),n.visualMode){var a=K(r,o)?0:-1,i=K(r,o)?-1:0;r=B(r,0,a),o=B(o,0,i),n.sel={anchor:o,head:r},Ce(e,n,'<',G(r,o)),Ce(e,n,'>',X(r,o))}else n.insertMode||(n.lastHPos=e.getCursor().ch)}function rt(e){this.keyName=e}function at(n){var e=Ct.macroModeState,o=e.lastInsertModeChanges,r=t.keyName(n);r&&(-1==r.indexOf('Delete')&&-1==r.indexOf('Backspace')||t.lookupKey(r,'vim-insert',function(){return o.maybeReset&&(o.changes=[],o.maybeReset=!1),o.changes.push(new rt(r)),!0}))}function it(e,t,n,o){function r(){d?Et.processAction(e,t,t.lastEditActionCommand):Et.evalInput(e,t)}function a(n){if(0']),yt=[].concat(ht,mt,gt,['-','"','.',':','/']),bt={};k('filetype',void 0,'string',['ft'],function(e,t){if(void 0!==t){if(void 0===e){var n=t.getOption('mode');return'null'==n?'':n}var n=''==e?'null':e;t.setOption('mode',n)}});var vt=function(){var e=100,t=-1,n=0,o=0,r=Array(e);return{cachedCursor:void 0,add:function(a,i,s){function d(n){var o=++t%e,i=r[o];i&&i.clear(),r[o]=a.setBookmark(n)}var l=t%e,p=r[l];if(p){var c=p.find();c&&!z(c,i)&&d(i)}else d(i);d(s),n=t,o=t-e+1,0>o&&(o=0)},move:function(a,i){t+=i,t>n?t=n:to)}return s}}},xt=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};I.prototype={exitMacroRecordMode:function(){var e=Ct.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var n=Ct.registerController.getRegister(t);n&&(n.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog('(recording)['+t+']',null,{bottom:!0})),this.isRecording=!0)}};var Ct,St;L.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},L.prototype.getRepeat=function(){var e=0;return(0=n.length?(this.iterator=n.length,this.initialPrefix):0>r?e:void 0},pushInput:function(e){var t=this.historyBuffer.indexOf(e);-1'==i.keys.slice(-11)&&(n.selectedCharacter=H(e)),{type:'full',command:i}},processCommand:function(e,t,n){switch(t.inputState.repeatOverride=n.repeatOverride,n.type){case'motion':this.processMotion(e,t,n);break;case'operator':this.processOperator(e,t,n);break;case'operatorMotion':this.processOperatorMotion(e,t,n);break;case'action':this.processAction(e,t,n);break;case'search':this.processSearch(e,t,n);break;case'ex':case'keyToEx':this.processEx(e,t,n);break;default:}},processMotion:function(e,t,n){t.inputState.motion=n.motion,t.inputState.motionArgs=F(n.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,n){var o=t.inputState;if(o.operator){if(o.operator==n.operator)return o.motion='expandToLine',o.motionArgs={linewise:!0},void this.evalInput(e,t);R(e)}o.operator=n.operator,o.operatorArgs=F(n.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,n){var o=t.visualMode,r=F(n.operatorMotionArgs);r&&o&&r.visualLine&&(t.visualLine=!0),this.processOperator(e,t,n),o||this.processMotion(e,t,n)},processAction:function(e,t,n){var o=t.inputState,r=o.getRepeat(),a=F(n.actionArgs)||{};o.selectedCharacter&&(a.selectedCharacter=o.selectedCharacter),n.operator&&this.processOperator(e,t,n),n.motion&&this.processMotion(e,t,n),(n.motion||n.operator)&&this.evalInput(e,t),a.repeat=r||1,a.repeatIsExplicit=!!r,a.registerName=o.registerName,R(e),t.lastMotion=null,n.isEdit&&this.recordLastEdit(t,o,n),wt[n.action](e,a,t)},processSearch:function(n,e,o){function r(t,r,a){Ct.searchHistoryController.pushInput(t),Ct.searchHistoryController.reset();try{Ue(n,t,r,a)}catch(o){return _e(n,'Invalid regex: '+t),void R(n)}Et.processMotion(n,e,{type:'motion',motion:'findNext',motionArgs:{forward:!0,toJumplist:o.searchArgs.toJumplist}})}function i(e){n.scrollTo(h.left,h.top),r(e,!0,!0);var t=Ct.macroModeState;t.isRecording&&Ze(t,e)}function s(o,e,r){var i=t.keyName(o),s,d;'Up'==i||'Down'==i?(s='Up'==i,d=o.target?o.target.selectionEnd:0,e=Ct.searchHistoryController.nextMatch(e,s)||'',r(e),d&&o.target&&(o.target.selectionEnd=o.target.selectionStart=a(d,o.target.value.length))):'Left'!=i&&'Right'!=i&&'Ctrl'!=i&&'Alt'!=i&&'Shift'!=i&&Ct.searchHistoryController.reset();var p;try{p=Ue(n,e,!0,!0)}catch(t){}p?n.scrollIntoView(He(n,!l,p),30):(qe(n),n.scrollTo(h.left,h.top))}function d(o,e,r){var a=t.keyName(o);'Esc'==a||'Ctrl-C'==a||'Ctrl-['==a||'Backspace'==a&&''==e?(Ct.searchHistoryController.pushInput(e),Ct.searchHistoryController.reset(),Ue(n,u),qe(n),n.scrollTo(h.left,h.top),t.e_stop(o),R(n),r(),n.focus()):'Up'==a||'Down'==a?t.e_stop(o):'Ctrl-U'==a&&(t.e_stop(o),r(''))}if(n.getSearchCursor){var l=o.searchArgs.forward,p=o.searchArgs.wholeWordOnly;Ie(n).setReversed(!l);var c=l?'/':'?',u=Ie(n).getQuery(),h=n.getScrollInfo();switch(o.searchArgs.querySrc){case'prompt':var m=Ct.macroModeState;if(m.isPlaying){var g=m.replaySearchQueries.shift();r(g,!0,!1)}else Fe(n,{onClose:i,prefix:c,desc:Rt,onKeyUp:s,onKeyDown:d});break;case'wordUnderCursor':var f=he(n,!1,!0,!1,!0),y=!0;if(f||(f=he(n,!1,!0,!1,!1),y=!1),!f)return;var g=n.getLine(f.start.line).substring(f.start.ch,f.end.ch);g=y&&p?'\\b'+g+'\\b':$(g),Ct.jumpList.cachedCursor=n.getCursor(),n.setCursor(f.start),r(g,!0,!1);}}},processEx:function(n,e,o){function r(e){Ct.exCommandHistoryController.pushInput(e),Ct.exCommandHistoryController.reset(),Dt.processCommand(n,e)}function i(o,e,r){var i=t.keyName(o),s,d;('Esc'==i||'Ctrl-C'==i||'Ctrl-['==i||'Backspace'==i&&''==e)&&(Ct.exCommandHistoryController.pushInput(e),Ct.exCommandHistoryController.reset(),t.e_stop(o),R(n),r(),n.focus()),'Up'==i||'Down'==i?(t.e_stop(o),s='Up'==i,d=o.target?o.target.selectionEnd:0,e=Ct.exCommandHistoryController.nextMatch(e,s)||'',r(e),d&&o.target&&(o.target.selectionEnd=o.target.selectionStart=a(d,o.target.value.length))):'Ctrl-U'==i?(t.e_stop(o),r('')):'Left'!=i&&'Right'!=i&&'Ctrl'!=i&&'Alt'!=i&&'Shift'!=i&&Ct.exCommandHistoryController.reset()}'keyToEx'==o.type?Dt.processCommand(n,o.exArgs.input):e.visualMode?Fe(n,{onClose:r,prefix:':',value:'\'<,\'>',onKeyDown:i}):Fe(n,{onClose:r,prefix:':',onKeyDown:i})},evalInput:function(e,t){var o=t.inputState,r=o.motion,a=o.motionArgs||{},s=o.operator,d=o.operatorArgs||{},p=o.registerName,c=t.sel,u=j(t.visualMode?M(e,c.head):e.getCursor('head')),h=j(t.visualMode?M(e,c.anchor):e.getCursor('anchor')),m=j(u),g=j(h),f,y,b;if(s&&this.recordLastEdit(t,o),b=void 0===o.repeatOverride?o.getRepeat():o.repeatOverride,0',K(y,f)?f:y)):!s&&(f=M(e,f),e.setCursor(f.line,f.ch))}if(s){if(d.lastSel){y=g;var S=d.lastSel,E=n(S.head.line-S.anchor.line),k=n(S.head.ch-S.anchor.ch);f=S.visualLine?l(g.line+E,g.ch):S.visualBlock?l(g.line+E,g.ch+k):S.head.line==S.anchor.line?l(g.line,g.ch+k):l(g.line+E,g.ch),t.visualMode=!0,t.visualLine=S.visualLine,t.visualBlock=S.visualBlock,c=t.sel={anchor:y,head:f},ie(e)}else t.visualMode&&(d.lastSel={anchor:j(c.anchor),head:j(c.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var T,w,I,N,A;if(!t.visualMode){if(T=j(y||g),w=j(f||m),K(w,T)){var L=T;T=w,w=L}I=a.linewise||d.linewise,I?ce(e,T,w):a.forward&&pe(e,T,w),N='char';var O=!a.inclusive||I;A=se(e,{anchor:T,head:w},N,O)}else if(T=G(c.head,c.anchor),w=X(c.head,c.anchor),I=t.visualLine||d.linewise,N=t.visualBlock?'block':I?'line':'char',A=se(e,{anchor:T,head:w},N),I){var P=A.ranges;if('block'==N)for(var D=0;Dp&&r.line==p?this.moveToEol(e,t,n,o):(n.toFirstChar&&(a=ue(e.getLine(s)),o.lastHPos=a),o.lastHSPos=e.charCoords(l(s,a),'div').left,l(s,a))},moveByDisplayLines:function(e,t,n,o){var r=t;switch(o.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:o.lastHSPos=e.charCoords(r,'div').left;}var a=n.repeat,i=e.findPosV(r,n.forward?a:-a,'line',o.lastHSPos);if(i.hitSide)if(n.forward)var s=e.charCoords(i,'div'),d={top:s.top+8,left:o.lastHSPos},i=e.coordsChar(d,'div');else{var p=e.charCoords(l(e.firstLine(),0),'div');p.left=o.lastHSPos,i=e.coordsChar(p,'div')}return o.lastHPos=i.ch,i},moveByPage:function(e,t,n){var o=n.repeat;return e.findPosV(t,n.forward?o:-o,'page')},moveByParagraph:function(e,t,n){var o=n.forward?1:-1;return Ee(e,t,n.repeat,o)},moveByScroll:function(e,t,n,o){var r=e.getScrollInfo(),a=null,i=n.repeat;i||(i=r.clientHeight/(2*e.defaultTextHeight()));var s=e.charCoords(t,'local');n.repeat=i;var a=kt.moveByDisplayLines(e,t,n,o);if(!a)return null;var d=e.charCoords(a,'local');return e.scrollTo(null,r.top+d.top-s.top),a},moveByWords:function(e,t,n){return be(e,t,n.repeat,!!n.forward,!!n.wordEnd,!!n.bigWord)},moveTillCharacter:function(e,t,n){var o=n.repeat,r=ve(e,o,n.forward,n.selectedCharacter),a=n.forward?-1:1;return(ge(a,n),!r)?null:(r.ch+=a,r)},moveToCharacter:function(e,t,n){var o=n.repeat;return ge(0,n),ve(e,o,n.forward,n.selectedCharacter)||t},moveToSymbol:function(e,t,n){var o=n.repeat;return fe(e,o,n.forward,n.selectedCharacter)||t},moveToColumn:function(e,t,n,o){var r=n.repeat;return o.lastHPos=r-1,o.lastHSPos=e.charCoords(t,'div').left,xe(e,r)},moveToEol:function(e,t,n,o){o.lastHPos=Infinity;var r=l(t.line+n.repeat-1,Infinity),a=e.clipPos(r);return a.ch--,o.lastHSPos=e.charCoords(a,'div').left,r},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return l(n.line,ue(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){var n=t,o=n.line,r=n.ch,a=e.getLine(o),i;do if(i=a.charAt(r++),i&&v(i)){var s=e.getTokenTypeAt(l(o,r));if('string'!==s&&'comment'!==s)break}while(i);if(i){var d=e.findMatchingBracket(l(o,r));return d.to}return n},moveToStartOfLine:function(e,t){return l(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,n){var o=n.forward?e.lastLine():e.firstLine();return n.repeatIsExplicit&&(o=n.repeat-e.getOption('firstLineNumber')),l(o,ue(e.getLine(o)))},textObjectManipulation:function(e,t,n,o){var r=n.selectedCharacter;'b'==r?r='(':'B'==r&&(r='{');var a=!n.textObjectInner,i;if({"(":')',")":'(',"{":'}',"}":'{',"[":']',"]":'['}[r])i=ke(e,t,r,a);else if({"'":!0,'"':!0}[r])i=Te(e,t,r,a);else if('W'===r)i=he(e,a,!0,!0);else if('w'===r)i=he(e,a,!0,!1);else{if('p'!==r)return null;if(i=Ee(e,t,n.repeat,0,a),n.linewise=!0,o.visualMode)o.visualLine||(o.visualLine=!0);else{var s=o.inputState.operatorArgs;s&&(s.linewise=!0),i.end.line--}}return e.state.vim.visualMode?ae(e,i.start,i.end):[i.start,i.end]},repeatLastCharacterSearch:function(e,t,n){var o=Ct.lastCharacterSearch,r=n.repeat,a=n.forward===o.forward,i=(o.increment?1:0)*(a?-1:1);e.moveH(-i,'char'),n.inclusive=!!a;var s=ve(e,r,a,o.selectedCharacter);return s?(s.ch+=i,s):(e.moveH(i,'char'),t)}},Tt={change:function(e,n,o){var r=Number.MAX_VALUE,a=e.state.vim,i,s;if(Ct.macroModeState.lastInsertModeChanges.inVisualBlock=a.visualBlock,!a.visualMode){var d=o[0].anchor,p=o[0].head;s=e.getRange(d,p);var c=a.lastEditInputState||{};if('moveByWords'==c.motion&&!S(s)){var u=/\s+$/.exec(s);u&&c.motionArgs&&c.motionArgs.forward&&(p=B(p,0,-u[0].length),s=s.slice(0,-u[0].length))}var h=new l(d.line-1,r),m=e.firstLine()==e.lastLine();p.line>e.lastLine()&&n.linewise&&!m?e.replaceRange('',h,p):e.replaceRange('',d,p),n.linewise&&(!m&&(e.setCursor(h),t.commands.newlineAndIndent(e)),d.ch=r),i=d}else{s=e.getSelection();var g=_('',o.length);e.replaceSelections(g),i=G(o[0].head,o[0].anchor)}Ct.registerController.pushText(n.registerName,'change',s,n.linewise,1p.top?(l.line+=(d-p.top)/a,l.line=Math.ceil(l.line),e.setCursor(l),p=e.charCoords(l,'local'),e.scrollTo(null,p.top)):e.scrollTo(null,d);else{var c=d+e.getScrollInfo().clientHeight;c=d.anchor.line?p=B(d.head,0,1):p=l(d.anchor.line,0);else if('inplace'==s&&i.visualMode)return;e.setOption('disableInput',!1),r&&r.replace?(e.toggleOverwrite(!0),e.setOption('keyMap','vim-replace'),t.signal(e,'vim-mode-change',{mode:'replace'})):(e.toggleOverwrite(!1),e.setOption('keyMap','vim-insert'),t.signal(e,'vim-mode-change',{mode:'insert'})),Ct.macroModeState.isPlaying||(e.on('change',et),t.on(e.getInputField(),'keydown',at)),i.visualMode&&le(e),te(e,p,c)}},toggleVisualMode:function(e,n,o){var r=n.repeat,a=e.getCursor(),i;o.visualMode?o.visualLine^n.linewise||o.visualBlock^n.blockwise?(o.visualLine=!!n.linewise,o.visualBlock=!!n.blockwise,t.signal(e,'vim-mode-change',{mode:'visual',subMode:o.visualLine?'linewise':o.visualBlock?'blockwise':''}),ie(e)):le(e):(o.visualMode=!0,o.visualLine=!!n.linewise,o.visualBlock=!!n.blockwise,i=M(e,l(a.line,a.ch+r-1),!0),o.sel={anchor:a,head:i},t.signal(e,'vim-mode-change',{mode:'visual',subMode:o.visualLine?'linewise':o.visualBlock?'blockwise':''}),ie(e),Ce(e,o,'<',G(a,i)),Ce(e,o,'>',X(a,i)))},reselectLastSelection:function(e,n,o){var r=o.lastSelection;if(o.visualMode&&re(e,o),r){var a=r.anchorMark.find(),i=r.headMark.find();if(!a||!i)return;o.sel={anchor:a,head:i},o.visualMode=!0,o.visualLine=r.visualLine,o.visualBlock=r.visualBlock,ie(e),Ce(e,o,'<',G(a,i)),Ce(e,o,'>',X(a,i)),t.signal(e,'vim-mode-change',{mode:'visual',subMode:o.visualLine?'linewise':o.visualBlock?'blockwise':''})}},joinLines:function(e,t,n){var r,a;if(n.visualMode){if(r=e.getCursor('anchor'),a=e.getCursor('head'),K(a,r)){var s=a;a=r,r=s}a.ch=Y(e,a.line)-1}else{var d=o(t.repeat,2);r=e.getCursor(),a=M(e,l(r.line+d-1,Infinity))}for(var p=0,c=r.line;cn)return'';if(e.getOption('indentWithTabs')){var o=r(n/d);return Array(o+1).join('\t')}return Array(n+1).join(' ')});s+=m?'\n':''}if(1e.lastLine()&&e.replaceRange('\n',l(I,0));var N=Y(e,I);Np.length&&(s=p.length),d=l(a.line,s)}if('\n'==r)o.visualMode||e.replaceRange('',a,d),(t.commands.newlineAndIndentContinueComment||t.commands.newlineAndIndent)(e);else{var c=e.getRange(a,d);if(c=c.replace(/[^\n]/g,r),o.visualBlock){var u=Array(e.getOption('tabSize')+1).join(' ');c=e.getSelection(),c=c.replace(/\t/g,u).replace(/[^\n]/g,r).split('\n'),e.replaceSelections(c)}else e.replaceRange(c,a,d);o.visualMode?(a=K(i[0].anchor,i[0].head)?i[0].anchor:i[0].head,e.setCursor(a),le(e,!1)):e.setCursor(B(d,0,-1))}},incrementNumberToken:function(e,t){for(var n=e.getCursor(),o=e.getLine(n.line),r=/-?\d+/g,a,i,s,d,p;null!==(a=r.exec(o))&&(p=a[0],i=a.index,s=i+p.length,!(n.cht.args.length?void _e(e,e.getOption('theme')):void e.setOption('theme',t.args[0])},map:function(e,t,n){var o=t.args;return!o||2>o.length?void(e&&_e(e,'Invalid mapping: '+t.input)):void Dt.map(o[0],o[1],n)},imap:function(e,t){this.map(e,t,'insert')},nmap:function(e,t){this.map(e,t,'normal')},vmap:function(e,t){this.map(e,t,'visual')},unmap:function(e,t,n){var o=t.args;return!o||1>o.length?void(e&&_e(e,'No such mapping: '+t.input)):void Dt.unmap(o[0],n)},move:function(e,t){Et.processCommand(e,e.state.vim,{type:'motion',motion:'moveToLineOrEdgeOfDocument',motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var n=t.args,o=t.setCfg||{};if(!n||1>n.length)return void(e&&_e(e,'Invalid mapping: '+t.input));var r=n[0].split('='),a=r[0],i=r[1],s=!1;if('?'==a.charAt(a.length-1)){if(i)throw Error('Trailing characters: '+t.argString);a=a.substring(0,a.length-1),s=!0}void 0===i&&'no'==a.substring(0,2)&&(a=a.substring(2),i=!1);var d=bt[a]&&'boolean'==bt[a].type;if(d&&void 0==i&&(i=!0),!d&&void 0===i||s){var l=w(a,e,o);!0===l||!1===l?_e(e,' '+(l?'':'no')+a):_e(e,' '+a+'='+l)}else T(a,i,e,o)},setlocal:function(e,t){t.setCfg={scope:'local'},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:'global'},this.set(e,t)},registers:function(e,t){var n=t.args,o=Ct.registerController.registers,r='----------Registers----------

';if(!n)for(var a in o){var s=o[a].toString();s.length&&(r+='"'+a+' '+s+'
')}else{var a;n=n.join('');for(var d=0;d'}}_e(e,r)},sort:function(e,n){function o(e,t){if(s){var n;n=e,e=t,t=n}d&&(e=e.toLowerCase(),t=t.toLowerCase());var o=c&&v.exec(e),r=c&&v.exec(t);return o?(o=parseInt((o[1]+o[2]).toLowerCase(),x),r=parseInt((r[1]+r[2]).toLowerCase(),x),o-r):e');if(!d)return void _e(e,c);var h=0,m=function(){if(h=c)return void _e(n,'Invalid argument: '+o.argString.substring(i));for(var u=0,h;u<=c-p;u++)h=e(p+u),delete r.marks[h]}else return void _e(n,'Invalid argument: '+d+'-')}else delete r.marks[s]}}},Dt=new Ot;return t.keyMap.vim={attach:u,detach:c,call:h},k('insertModeEscKeysTimeout',200,'number'),t.keyMap['vim-insert']={fallthrough:['default'],attach:u,detach:c,call:h},t.keyMap['vim-replace']={Backspace:'goCharLeft',fallthrough:['vim-insert'],attach:u,detach:c,call:h},(A(),{buildKeyMap:function(){},getRegisterController:function(){return Ct.registerController},resetVimGlobalState_:A,getVimGlobalState_:function(){return Ct},maybeInitVimState_:N,suppressErrorLogging:!1,InsertModeKey:rt,map:function(e,t,n){Dt.map(e,t,n)},unmap:function(e,t){Dt.unmap(e,t)},setOption:T,getOption:w,defineOption:k,defineEx:function(e,t,n){if(!t)t=e;else if(0!==e.indexOf(t))throw new Error('(Vim.defineEx) "'+t+'" is not a prefix of "'+e+'", command not registered');Pt[e]=n,Dt.commandMap_[t]={name:e,shortName:t,type:'api'}},handleKey:function(e,t,n){var o=this.findKey(e,t,n);if('function'==typeof o)return o()},findKey:function(n,e,o){function r(){var t=Ct.macroModeState;if(t.isRecording){if('q'==e)return t.exitMacroRecordMode(),R(n),!0;'mapping'!=o&&Je(t,e)}}function a(){if(''==e)return R(n),d.visualMode?le(n):d.insertMode&&Xe(n),!0}function i(o){for(var r;o;)r=/<\w+-.+?>|<\w+>|./.exec(o),e=r[0],o=o.substring(r.index+e.length),t.Vim.handleKey(n,e,'mapping')}var d=N(n),l;return l=d.insertMode?function(){if(a())return!0;for(var t=d.inputState.keyBuffer+=e,o=1==e.length,r=Et.matchCommand(t,s,d.inputState,'insert');1=e}function a(e){return 47e}function s(e){return e===Tr||e===zr}function l(t){return t&&t!==Rr&&!s(t)&&!te(t)}function c(s,l,e){l=jr(s.length,_r(0,null==l?s.length:l)),null!=e&&!0!==e||(l=u(s,l));var n=new $r(s),i;n.pos=l;for(var r=[];!n.sol();){if(i=n.peek(),h(i))r.push(i);else if(!d(i)){if(t(r,Wr)||t(r,Br)){n.pos--;continue}if(Lr(n)||!p(i))break}else if(r.pop()!==Yr.get(i))break;n.pos--}if(!r.length&&n.pos!==l){var o=s.slice(n.pos,l).replace(/^[\*\+\>\^]+/,'');return{abbreviation:o,location:l-o.length}}}function u(t,e){for(te(t.charCodeAt(e))&&e++;h(t.charCodeAt(e));)e++;return e}function t(n,t){return-1!==n.indexOf(t)}function p(e){return 64e||96e||47e||Dr.has(e)}function d(e){return e===Fr||e===Pr||e===Ir}function h(e){return e===Wr||e===Ur||e===Br}function m(n,t){return t&&(n='upper'===t?n.toUpperCase():n.toLowerCase()),n}function g(n,o){return n instanceof Jr?n:'string'==typeof n?new Jr(n,o):n&&'object'==typeof n?new Jr(n.name,n.value,n.options):void 0}function f(e){return(e+'').trim()}function y(o,t,e){return o&&e.indexOf(o)===t}function b(e){return e===ia||e===sa}function v(e){return 47e}function x(o,t,e){return t=t||65,e=e||90,(o&=-33)>=t&&o<=e}function k(e){return v(e)||x(e)}function C(e){return 32===e||9===e||160===e}function w(e){return C(e)||10===e||13===e}function A(s,t,e,n){n=n?Object.assign({},$a,n):$a;var r=s.pos;if(s.eat(t)){for(var i=1,a;!s.eof();)if(!Ca(s,n))if((a=s.next())===t)i++;else if(!(a===e))a===n.escape&&s.next();else if(! --i)return s.start=r,!0;if(s.pos=r,n.throws)throw s.error('Unable to find matching pair for '+Or(t))}return!1}function O(o){var r={};o.charCodeAt(0)===ai&&(o=o.slice(1),r.implied=!0),o.charCodeAt(o.length-1)===ii&&(o=o.slice(0,o.length-1),r.boolean=!0);var e={name:o};return Object.keys(r).length&&(e.options=r),e}function _(n){var t=n.pos;if(n.eatWhile(S))return n.start=t,!0}function S(e){return!w(e)&&!b(e)&&e!==di&&e!==li&&e!==si}function E(e){return e.start=e.pos,e.eatWhile(q),e.current()}function q(e){return k(e)||45===e||58===e||36===e||64===e||33===e||95===e||37===e}function j(d){for(var t=new aa(d.trim()),n=new Kr,r=n,i=[],o;!t.eof();)if(!((o=t.peek())!==hi)){var e=new Kr,l=i.length?T(i)[0]:r;i.push([e,l,t.pos]),r=e,t.next()}else if(o!==mi){var p=ui(t);if(r.appendChild(p),t.eof())break;switch(t.peek()){case gi:t.next();continue;case fi:t.next(),r=p;continue;case yi:for(;t.eat(yi);)r=r.parent||r;continue;}}else{var a=i.pop();if(!a)throw t.error('Unexpected ")" group end');var c=a[0];if(r=a[1],t.next(),c.repeat=ei(t))r.appendChild(c);else{for(;c.firstChild;)r.appendChild(c.firstChild);t.eat(gi)}}if(i.length)throw t.pos=i.pop()[2],t.error('Expected group close');return n}function T(e){return e[e.length-1]}function M(o){if(o.repeat&&o.repeat.count){for(var t=1,e;tn&&(n=e.index)}),-1!==n&&(a.index=n+1),e}function Ct(d,l){if(null==d)return d;for(var e=[],t=function(e,t,n,o){return null==l[n]?'':t+l[n]+o},o='',a=0,i=0,s,n;i=t.get('inlineBreak'))return!0}for(var o=0,a=d.children.length;on?0:n}function Ut(a,t){var e=a.node;if(t.enabled&&t.trigger&&e.name)for(var n=a.node.attributes.reduce(function(n,t){return t.name&&null!=t.value&&(n[t.name.toUpperCase().replace(/-/g,'_')]=t.value),n},{}),r=0,i=t.trigger.length;rt?0:t}function zt(o,t){var e=o.node;return!e.isTextOnly&&e.value&&(o.beforeText=ho.test(e.value)?o.newline+o.indent+t.indent(1):' '),o}function Vt(o,t){if(null!=o.value&&ho.test(o.value)){var e=wt(o.value),n=t.indent(1),r=e.reduce(function(n,t){return _r(n,t.length)},0);return e.map(function(o,t){return''+(t?n:'')+Xt(o,r)+' |'}).join('\n')}return o.value}function Xt(n,t){for(;n.length>4).toString(16)}function ae(e){return se(e.toString(16),2)}function se(n,t){for(;n.length=r&&(r=a,n=o)}return n}function qe(o,a){var e=o&&'object'==typeof o?o[a]:o,n=(e||'').match(/^[\w-@]+/);return n?n[0]:e}function ze(o,t){for(var e=0,n=0;en&&(t=t.slice(0,n-1).concat(t.slice(n-1).join(', ')));t.length;){var r=t.shift(),i=e.fields.shift(),o=r.length-i.length;e.string=e.string.slice(0,i.location)+r+e.string.slice(i.location+i.length);for(var a=0,s=e.fields.length;aa.length)return a;a=a.slice();var t=a.length,e=/,$/,n=0;n=3=t?Be(0,1):6=t?Be(0,2):Be(1,4);for(var r=0,i=void 0;rgn(t,o.to):0<=gn(t,o.from)&&0>=gn(t,o.to)}function gn(n,t){return n.line-t.line||n.ch-t.ch}function fn(o,t,e){return Zt(o,Object.assign({syntax:an(t),field:xa},Cn(t),e))}function yn(n,t){return en(n,Object.assign({syntax:an(t)},Cn(t)))}function bn(n,t){return t=t||t.getCursor(),c(n.getLine(t.line),t.ch,!0)}function vn(n,o){try{return{ast:yn(n,o),abbreviation:n,snippet:fn(n,o)}}catch(e){return null}}function xn(d,t,l){var n=!1,p=0,o;try{o=fn(t,d,{field:function(o,t){return void 0===t&&(t=''),n||(n=!0,p=t.length,t=ya+t),t}})}catch(e){return!1}var e=d.getLine(l.from.line),r=e.match(/^\s+/);o=cn(d,o,r&&r[0]);var a=o.length;return n&&(a=o.indexOf(ya),o=o.slice(0,a)+o.slice(a+ya.length)),d.operation(function(){d.replaceRange(o,l.from,l.to);var t=d.indexFromPos(l.from),e=d.posFromIndex(a+t);return p?d.setSelection(e,{line:e.line,ch:e.ch+p}):d.setCursor(e),!0})}function Cn(o,t){var e=o.getModeAt(t||o.getCursor()),n=o.getOption('emmet'),r=n&&n.profile;return'xml'===e.name&&(r=Object.assign({selfClosingStyle:e.configuration},r)),Object.assign({profile:r,snippets:kn(o,an(o,t))},n)}function kn(o,t){var e=o.getOption('emmet');if(e)return on(t)?e.stylesheetSnippets:e.markupSnippets}function wn(n){var t=An(n,n.getCursor());t&&_n(n,t)||(Sn(n),ln(n)&&On(n,n.getCursor()))}function An(o,t){for(var e=o.findMarksAt(t),n=0;n\^\+\(\)]/.test(o[t-r.length-1]))?r:null}function Bn(e){return e===qa||e===za}function Dn(e){return 47e}function jn(o,t,e){return t=t||65,e=e||90,(o&=-33)>=t&&o<=e}function zn(e){return Dn(e)||jn(e)}function Vn(e){return 32===e||9===e||160===e}function Gn(e){return Vn(e)||10===e||13===e}function Hn(s,t,e,n){n=n?Object.assign({},Ra,n):Ra;var r=s.pos;if(s.eat(t)){for(var i=1,a;!s.eof();)if(!Ma(s,n))if((a=s.next())===t)i++;else if(!(a===e))a===n.escape&&s.next();else if(! --i)return s.start=r,!0;if(s.pos=r,n.throws)throw s.error('Unable to find matching pair for '+Or(t))}return!1}function Xn(o,t){var e=o.pos;return o.eatWhile(t)?new Wa(o,e,o.pos):void(o.pos=e)}function Qn(e){return Ia(e)||Fa(e,Kn)}function Yn(a){var t=a.pos;if(Ma(a)){var e=a.pos,i,n;a.pos=t,a.next(),i=a.start=a.pos,a.pos=e,a.backUp(1),n=a.pos;var r=Fa(a,i,n);return a.pos=e,r}return Ia(a)||$n(a)}function Kn(e){return e!==Da&&!Jn(e)&&!Gn(e)}function Jn(e){return e===Ya||e===Ba}function $n(e){return Fa(e,Zn)}function Zn(e){return!(isNaN(e)||Bn(e)||Gn(e)||Jn(e))}function er(e){return Fa(e,tr)}function tr(e){return zn(e)||e===Ha||e===Xa||e===Va||e===Za}function nr(o,t){for(var e=o.pos,n=0;n'))},new Map),u=[o],l,n,r;!e.eof();)if(!(l=ir(e)))e.next();else if(r=lr(l),'open'===l.type)n=new La(e,'tag',l),pr(u).addChild(n),s.has(r)?n.close=sr(e,s.get(r)):function(e,t){return e.selfClosing||!p.xml&&a.has(t)}(l,r)||u.push(n);else if('close'===l.type){for(var i=u.length-1;0','/'].map(Nr)),Yr=new Map().set(Fr,Wr).set(Pr,Ur).set(Ir,Br),Gr={indent:'\t',tagCase:'',attributeCase:'',attributeQuotes:'double',format:!0,formatSkip:['html'],formatForce:['body'],inlineBreak:3,compactBooleanAttributes:!1,booleanAttributes:['contenteditable','seamless','async','autofocus','autoplay','checked','controls','defer','disabled','formnovalidate','hidden','ismap','loop','multiple','muted','novalidate','readonly','required','reversed','selected','typemustmatch'],selfClosingStyle:'html',inlineElements:['a','abbr','acronym','applet','b','basefont','bdo','big','br','button','cite','code','del','dfn','em','font','i','iframe','img','input','ins','kbd','label','map','object','q','s','samp','select','small','span','strike','strong','sub','sup','textarea','tt','u','var']},Vr=function(e){this.options=Object.assign({},Gr,e),this.quoteChar='single'===this.options.attributeQuotes?'\'':'"'};Vr.prototype.get=function(e){return this.options[e]},Vr.prototype.quote=function(e){return''+this.quoteChar+(null==e?'':e)+this.quoteChar},Vr.prototype.name=function(e){return m(e,this.options.tagCase)},Vr.prototype.attribute=function(e){return m(e,this.options.attributeCase)},Vr.prototype.isBooleanAttribute=function(e){return e.options.boolean||-1!==this.get('booleanAttributes').indexOf((e.name||'').toLowerCase())},Vr.prototype.selfClose=function(){switch(this.options.selfClosingStyle){case'xhtml':return' /';case'xml':return'/';default:return'';}},Vr.prototype.indent=function(o){var t=this;o=o||0;for(var e='';o--;)e+=t.options.indent;return e},Vr.prototype.isInline=function(e){return'string'==typeof e?-1!==this.get('inlineElements').indexOf(e.toLowerCase()):null==e.name?e.isTextOnly:this.isInline(e.name)},Vr.prototype.field=function(n,t){return this.options.field(n,t)};var Xr=function(n,t){this.key=n,this.value=t},Hr=function(e){this._string=new Map,this._regexp=new Map,this._disabled=!1,this.load(e)},Zr={disabled:{}};Zr.disabled.get=function(){return this._disabled},Hr.prototype.disable=function(){this._disabled=!0},Hr.prototype.enable=function(){this._disabled=!1},Hr.prototype.set=function(o,r){var e=this;if('string'==typeof o)o.split('|').forEach(function(n){return e._string.set(n,new Xr(n,r))});else{if(!(o instanceof RegExp))throw new Error('Unknow snippet key: '+o);this._regexp.set(o,new Xr(o,r))}return this},Hr.prototype.get=function(o){var t=this;if(!this.disabled){if(this._string.has(o))return this._string.get(o);for(var e=Array.from(this._regexp.keys()),n=0,r=e.length;nt||t>this.children.length)throw new Error('Unable to insert node: position is out of child list range');var e=this.children[t-1],n=this.children[t];o.remove(),o.parent=this,this.children.splice(t,0,o),e&&(o.previous=e,e.next=o),n&&(o.next=n,n.previous=o)},Kr.prototype.removeChild=function(n){var t=this.children.indexOf(n);-1!==t&&(this.children.splice(t,1),n.previous&&(n.previous.next=n.next),n.next&&(n.next.previous=n.previous),n.parent=n.next=n.previous=null)},Kr.prototype.remove=function(){this.parent&&this.parent.removeChild(this)},Kr.prototype.clone=function(n){var o=new Kr(this.name);return o.value=this.value,o.selfClosing=this.selfClosing,this.repeat&&(o.repeat=Object.assign({},this.repeat)),this._attributes.forEach(function(e){return o.setAttribute(e.clone())}),n&&this.children.forEach(function(e){return o.appendChild(e.clone(!0))}),o},Kr.prototype.walk=function(o,t){t=t||0;for(var e=this.firstChild,n;e;){if(n=e.next,!1===o(e,t)||!1===e.walk(o,t+1))return!1;e=n}},Kr.prototype.use=function(o){for(var t=arguments,e=[this],n=1;n=this.end},aa.prototype.limit=function(n,t){return new this.constructor(this.string,n,t)},aa.prototype.peek=function(){return this.string.charCodeAt(this.pos)},aa.prototype.next=function(){if(this.pos'},lo=/^id$/i,co=/^class$/i,fo={primary:function(e){return e.join('')},secondary:function(e){return e.map(function(e){return e.isBoolean?e.name:e.name+'='+e.value}).join(', ')}},ji={open:null,close:null,omitName:/^div$/i,attributes:fo},ho=/\n|\r/,mo=/\n|\r/,go={none:'[ SECONDARY_ATTRS]',round:'[(SECONDARY_ATTRS)]',curly:'[{SECONDARY_ATTRS}]',square:'[[SECONDARY_ATTRS]'},bo=/\n|\r/,vo={html:function(o,a,e){return e=Object.assign({},e),e.comment=Object.assign({},uo,e.comment),bt(o,e.field,function(n){if(n=jt(n,a),!St(n)){var t=n.node;if(t.name){var r=a.name(t.name),i=Nt(n,a);n.open='<'+r+i+(t.selfClosing?a.selfClose():'')+'>',t.selfClosing||(n.close=''),Ut(n,e.comment)}!t.value&&(t.children.length||t.selfClosing)||(n.text=n.renderFields(t.value))}return n})},haml:function(o,a,e){e=e||{};var i={open:'[%NAME][PRIMARY_ATTRS][(SECONDARY_ATTRS)][SELF_CLOSE]',selfClose:'/',attributes:{secondary:function(e){return e.map(function(e){return e.isBoolean?e.name+(a.get('compactBooleanAttributes')?'':'=true'):e.name+'='+a.quote(e.value)}).join(' ')}}};return bt(o,e.field,function(e){if(e=It(e,a,i),e=zt(e,a),!St(e)){var t=e.node;!t.value&&(t.children.length||t.selfClosing)||(e.text=e.renderFields(Vt(t,a)))}return e})},slim:function(a,s,e){e=e||{};var t=e.attributeWrap&&go[e.attributeWrap]||go.none,n=t===go.none?function(e){return e.name+'=true'}:function(e){return e.name},i={open:'[NAME][PRIMARY_ATTRS]'+t+'[SELF_CLOSE]',selfClose:'/',attributes:{secondary:function(e){return e.map(function(e){return e.isBoolean?n(e):e.name+'='+s.quote(e.value)}).join(' ')}}};return bt(a,e.field,function(e){if(e=It(e,s,i),e=Ht(e,s),!St(e)){var t=e.node;!t.value&&(t.children.length||t.selfClosing)||(e.text=e.renderFields(Qt(t,s)))}return e})},pug:function(o,a,e){e=e||{};var i={open:'[NAME][PRIMARY_ATTRS][(SECONDARY_ATTRS)]',attributes:{secondary:function(e){return e.map(function(e){return e.isBoolean?e.name:e.name+'='+a.quote(e.value)}).join(', ')}}};return bt(o,e.field,function(e){if(e=It(e,a,i),e=Kt(e,a),!St(e)){var t=e.node;!t.value&&(t.children.length||t.selfClosing)||(e.text=e.renderFields(ee(t,a)))}return e})}},yo=function(o,t,e,a){return'object'==typeof e&&(a=e,e=null),ne(e)||(e='html'),vo[e](o,t,a)},xo=function(){this.type='css-value',this.value=[]},wo={size:{}};wo.size.get=function(){return this.value.length},xo.prototype.add=function(e){this.value.push(e)},xo.prototype.has=function(e){return-1!==this.value.indexOf(e)},xo.prototype.toString=function(){return this.value.join(' ')},Object.defineProperties(xo.prototype,wo);var ko=function(n){if(35===n.peek()){n.start=n.pos,n.next(),n.eat(116)||n.eatWhile(re);var t=n.current();if(n.start=n.pos,n.eat(46)&&!n.eatWhile(v))throw n.error('Unexpected character for alpha value of color');return new $o(t,n.current())}},$o=function(o,t){this.type='color',this.raw=o,this.alpha=+(null!=t&&''!==t?t:1),o=o.slice(1);var e=0,n=0,r=0;if('t'===o)this.alpha=0;else switch(o.length){case 0:break;case 1:e=n=r=o+o;break;case 2:e=n=r=o;break;case 3:e=o[0]+o[0],n=o[1]+o[1],r=o[2]+o[2];break;default:o+=o,e=o.slice(0,2),n=o.slice(2,4),r=o.slice(4,6);}this.r=parseInt(e,16),this.g=parseInt(n,16),this.b=parseInt(r,16)};$o.prototype.toHex=function(n){var t=n&&ie(this.r)&&ie(this.g)&&ie(this.b)?oe:ae;return'#'+t(this.r)+t(this.g)+t(this.b)},$o.prototype.toRGB=function(){var e=[this.r,this.g,this.b];return 1!==this.alpha&&e.push(this.alpha.toFixed(8).replace(/\.?0+$/,'')),(3===e.length?'rgb':'rgba')+'('+e.join(', ')+')'},$o.prototype.toString=function(e){return this.r||this.g||this.b||this.alpha?1===this.alpha?this.toHex(e):this.toRGB():'transparent'};var Co=46,Ao=45,Oo=function(n){if(n.start=n.pos,ce(n)){var t=n.current();return n.start=n.pos,n.eat(37)||n.eatWhile(le),new jo(t,n.current())}},jo=function(n,o){this.type='numeric',this.value=+n,this.unit=o||''};jo.prototype.toString=function(){return''+this.value+this.unit};var _o=45,So=function(n,t){return n.start=n.pos,n.eat(36)||n.eat(64)?n.eatWhile(pe):t?n.eatWhile(le):n.eatWhile(fe),n.start===n.pos?null:new Eo(n.current())},Eo=function(e){this.type='keyword',this.value=e};Eo.prototype.toString=function(){return this.value};var qo={throws:!0},zo=function(e){if(Ca(e,qo))return new To(e.current())},To=function(e){this.type='string',this.value=e};To.prototype.toString=function(){return this.value};var Mo=40,Ro=41,Lo=44,No=function(n,t){this.type='function',this.name=n,this.args=t||[]};No.prototype.toString=function(){return this.name+'('+this.args.join(', ')+')'};var Fo=33,Wo=36,Po=45,Uo=58,Io=64,Bo=function(a){for(var t=new Kr,e=new aa(a),n;!e.eof();){n=new Kr(ge(e)),n.value=be(e);var r=he(e);if(r)for(var i=0;isrc:m+img',"ri:t|ri:type":'pic>src:t+img',"!!!":'{}',doc:'html[lang=${lang}]>(head>meta[charset=${charset}]+meta:vp+meta:edge+title{${1:Document}})+body',"!|html:5":'!!!+doc',c:'{}',"cc:ie":'{}',"cc:noie":'{${0}}'},css:{"@f":'@font-face {\n\tfont-family: ${1};\n\tsrc: url(${1});\n}',"@ff":'@font-face {\n\tfont-family: \'${1:FontName}\';\n\tsrc: url(\'${2:FileName}.eot\');\n\tsrc: url(\'${2:FileName}.eot?#iefix\') format(\'embedded-opentype\'),\n\t\t url(\'${2:FileName}.woff\') format(\'woff\'),\n\t\t url(\'${2:FileName}.ttf\') format(\'truetype\'),\n\t\t url(\'${2:FileName}.svg#${1:FontName}\') format(\'svg\');\n\tfont-style: ${3:normal};\n\tfont-weight: ${4:normal};\n}',"@i|@import":'@import url(${0});',"@kf":'@keyframes ${1:identifier} {\n\t${2}\n}',"@m|@media":'@media ${1:screen} {\n\t${0}\n}',ac:'align-content:flex-start|flex-end|center|space-between|space-around|stretch',ai:'align-items:flex-start|flex-end|center|baseline|stretch',anim:'animation:${1:name} ${2:duration} ${3:timing-function} ${4:delay} ${5:iteration-count} ${6:direction} ${7:fill-mode}',animdel:'animation-delay:${1:time}',animdir:'animation-direction:normal|reverse|alternate|alternate-reverse',animdur:'animation-duration:${1:0}s',animfm:'animation-fill-mode:both|forwards|backwards',animic:'animation-iteration-count:1|infinite',animn:'animation-name',animps:'animation-play-state:running|paused',animtf:'animation-timing-function:linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(${1:0.1}, ${2:0.7}, ${3:1.0}, ${3:0.1})',ap:'appearance:none',as:'align-self:auto|flex-start|flex-end|center|baseline|stretch',b:'bottom',bd:'border:${1:1px} ${2:solid} ${3:#000}',bdb:'border-bottom:${1:1px} ${2:solid} ${3:#000}',bdbc:'border-bottom-color:#${1:000}',bdbi:'border-bottom-image:url(${0})',bdbk:'border-break:close',bdbli:'border-bottom-left-image:url(${0})|continue',bdblrs:'border-bottom-left-radius',bdbri:'border-bottom-right-image:url(${0})|continue',bdbrrs:'border-bottom-right-radius',bdbs:'border-bottom-style',bdbw:'border-bottom-width',bdc:'border-color:#${1:000}',bdci:'border-corner-image:url(${0})|continue',bdcl:'border-collapse:collapse|separate',bdf:'border-fit:repeat|clip|scale|stretch|overwrite|overflow|space',bdi:'border-image:url(${0})',bdl:'border-left:${1:1px} ${2:solid} ${3:#000}',bdlc:'border-left-color:#${1:000}',bdlen:'border-length',bdli:'border-left-image:url(${0})',bdls:'border-left-style',bdlw:'border-left-width',bdr:'border-right:${1:1px} ${2:solid} ${3:#000}',bdrc:'border-right-color:#${1:000}',bdri:'border-right-image:url(${0})',bdrs:'border-radius',bdrst:'border-right-style',bdrw:'border-right-width',bds:'border-style:hidden|dotted|dashed|solid|double|dot-dash|dot-dot-dash|wave|groove|ridge|inset|outset',bdsp:'border-spacing',bdt:'border-top:${1:1px} ${2:solid} ${3:#000}',bdtc:'border-top-color:#${1:000}',bdti:'border-top-image:url(${0})',bdtli:'border-top-left-image:url(${0})|continue',bdtlrs:'border-top-left-radius',bdtri:'border-top-right-image:url(${0})|continue',bdtrrs:'border-top-right-radius',bdts:'border-top-style',bdtw:'border-top-width',bdw:'border-width',bfv:'backface-visibility:hidden|visible',bg:'background:#${1:000}',bga:'background-attachment:fixed|scroll',bgbk:'background-break:bounding-box|each-box|continuous',bgc:'background-color:#${1:fff}',bgcp:'background-clip:padding-box|border-box|content-box|no-clip',bgi:'background-image:url(${0})',bgo:'background-origin:padding-box|border-box|content-box',bgp:'background-position:${1:0} ${2:0}',bgpx:'background-position-x',bgpy:'background-position-y',bgr:'background-repeat:no-repeat|repeat-x|repeat-y|space|round',bgsz:'background-size:contain|cover',bxsh:'box-shadow:${1:inset }${2:hoff} ${3:voff} ${4:blur} ${5:color}|none',bxsz:'box-sizing:border-box|content-box|border-box',c:'color:#${1:000}',cl:'clear:both|left|right|none',cm:'/* ${0} */',cnt:'content:\'${0}\'|normal|open-quote|no-open-quote|close-quote|no-close-quote|attr(${0})|counter(${0})|counters({$0})',coi:'counter-increment',colm:'columns',colmc:'column-count',colmf:'column-fill',colmg:'column-gap',colmr:'column-rule',colmrc:'column-rule-color',colmrs:'column-rule-style',colmrw:'column-rule-width',colms:'column-span',colmw:'column-width',cor:'counter-reset',cp:'clip:auto|rect(${1:top} ${2:right} ${3:bottom} ${4:left})',cps:'caption-side:top|bottom',cur:'cursor:pointer|auto|default|crosshair|hand|help|move|pointer|text',d:'display:block|none|flex|inline-flex|inline|inline-block|list-item|run-in|compact|table|inline-table|table-caption|table-column|table-column-group|table-header-group|table-footer-group|table-row|table-row-group|table-cell|ruby|ruby-base|ruby-base-group|ruby-text|ruby-text-group',ec:'empty-cells:show|hide',f:'font:${1:1em} ${2:sans-serif}',fef:'font-effect:none|engrave|emboss|outline',fem:'font-emphasize',femp:'font-emphasize-position:before|after',fems:'font-emphasize-style:none|accent|dot|circle|disc',ff:'font-family:serif|sans-serif|cursive|fantasy|monospace',fl:'float:left|right|none',fs:'font-style:italic|normal|oblique',fsm:'font-smoothing:antialiased|subpixel-antialiased|none',fst:'font-stretch:normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded',fv:'font-variant:normal|small-caps',fw:'font-weight:normal|bold|bolder|lighter',fx:'flex',fxb:'flex-basis:fill|max-content|min-content|fit-content|content',fxd:'flex-direction:row|row-reverse|column|column-reverse',fxf:'flex-flow',fxg:'flex-grow',fxsh:'flex-shrink',fxw:'flex-wrap:nowrap|wrap|wrap-reverse',fz:'font-size',fza:'font-size-adjust',h:'height',jc:'justify-content:flex-start|flex-end|center|space-between|space-around',l:'left',lg:'background-image:linear-gradient(${1})',lh:'line-height',lis:'list-style',lisi:'list-style-image',lisp:'list-style-position:inside|outside',list:'list-style-type:disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman',lts:'letter-spacing:normal',m:'margin',mah:'max-height',mar:'max-resolution',maw:'max-width',mb:'margin-bottom',mih:'min-height',mir:'min-resolution',miw:'min-width',ml:'margin-left',mr:'margin-right',mt:'margin-top',ol:'outline',olc:'outline-color:#${1:000}|invert',olo:'outline-offset',ols:'outline-style:none|dotted|dashed|solid|double|groove|ridge|inset|outset',olw:'outline-width|thin|medium|thick',op:'opacity',ord:'order',ori:'orientation:landscape|portrait',orp:'orphans',ov:'overflow:hidden|visible|hidden|scroll|auto',ovs:'overflow-style:scrollbar|auto|scrollbar|panner|move|marquee',ovx:'overflow-x:hidden|visible|hidden|scroll|auto',ovy:'overflow-y:hidden|visible|hidden|scroll|auto',p:'padding',pb:'padding-bottom',pgba:'page-break-after:auto|always|left|right',pgbb:'page-break-before:auto|always|left|right',pgbi:'page-break-inside:auto|avoid',pl:'padding-left',pos:'position:relative|absolute|relative|fixed|static',pr:'padding-right',pt:'padding-top',q:'quotes',qen:'quotes:\'\\201C\' \'\\201D\' \'\\2018\' \'\\2019\'',qru:'quotes:\'\\00AB\' \'\\00BB\' \'\\201E\' \'\\201C\'',r:'right',rsz:'resize:none|both|horizontal|vertical',t:'top',ta:'text-align:left|center|right|justify',tal:'text-align-last:left|center|right',tbl:'table-layout:fixed',td:'text-decoration:none|underline|overline|line-through',te:'text-emphasis:none|accent|dot|circle|disc|before|after',th:'text-height:auto|font-size|text-size|max-size',ti:'text-indent',tj:'text-justify:auto|inter-word|inter-ideograph|inter-cluster|distribute|kashida|tibetan',to:'text-outline:${1:0} ${2:0} ${3:#000}',tov:'text-overflow:ellipsis|clip',tr:'text-replace',trf:'transform:${1}|skewX(${1:angle})|skewY(${1:angle})|scale(${1:x}, ${2:y})|scaleX(${1:x})|scaleY(${1:y})|scaleZ(${1:z})|scale3d(${1:x}, ${2:y}, ${3:z})|rotate(${1:angle})|rotateX(${1:angle})|rotateY(${1:angle})|rotateZ(${1:angle})|translate(${1:x}, ${2:y})|translateX(${1:x})|translateY(${1:y})|translateZ(${1:z})|translate3d(${1:tx}, ${2:ty}, ${3:tz})',trfo:'transform-origin',trfs:'transform-style:preserve-3d',trs:'transition:${1:prop} ${2:time}',trsde:'transition-delay:${1:time}',trsdu:'transition-duration:${1:time}',trsp:'transition-property:${1:prop}',trstf:'transition-timing-function:${1:fn}',tsh:'text-shadow:${1:hoff} ${2:voff} ${3:blur} ${4:#000}',tt:'text-transform:uppercase|lowercase|capitalize|none',tw:'text-wrap:none|normal|unrestricted|suppress',us:'user-select:none',v:'visibility:hidden|visible|collapse',va:'vertical-align:top|super|text-top|middle|baseline|bottom|text-bottom|sub',w:'width',whs:'white-space:nowrap|pre|pre-wrap|pre-line|normal',whsc:'white-space-collapse:normal|keep-all|loose|break-strict|break-all',wid:'widows',wm:'writing-mode:lr-tb|lr-tb|lr-bt|rl-tb|rl-bt|tb-rl|tb-lr|bt-lr|bt-rl',wob:'word-break:normal|keep-all|break-all',wos:'word-spacing',wow:'word-wrap:none|unrestricted|suppress|break-word|normal',z:'z-index',zom:'zoom:1'}},oa={latin:{common:['lorem','ipsum','dolor','sit','amet','consectetur','adipisicing','elit'],words:['exercitationem','perferendis','perspiciatis','laborum','eveniet','sunt','iure','nam','nobis','eum','cum','officiis','excepturi','odio','consectetur','quasi','aut','quisquam','vel','eligendi','itaque','non','odit','tempore','quaerat','dignissimos','facilis','neque','nihil','expedita','vitae','vero','ipsum','nisi','animi','cumque','pariatur','velit','modi','natus','iusto','eaque','sequi','illo','sed','ex','et','voluptatibus','tempora','veritatis','ratione','assumenda','incidunt','nostrum','placeat','aliquid','fuga','provident','praesentium','rem','necessitatibus','suscipit','adipisci','quidem','possimus','voluptas','debitis','sint','accusantium','unde','sapiente','voluptate','qui','aspernatur','laudantium','soluta','amet','quo','aliquam','saepe','culpa','libero','ipsa','dicta','reiciendis','nesciunt','doloribus','autem','impedit','minima','maiores','repudiandae','ipsam','obcaecati','ullam','enim','totam','delectus','ducimus','quis','voluptates','dolores','molestiae','harum','dolorem','quia','voluptatem','molestias','magni','distinctio','omnis','illum','dolorum','voluptatum','ea','quas','quam','corporis','quae','blanditiis','atque','deserunt','laboriosam','earum','consequuntur','hic','cupiditate','quibusdam','accusamus','ut','rerum','error','minus','eius','ab','ad','nemo','fugit','officia','at','in','id','quos','reprehenderit','numquam','iste','fugiat','sit','inventore','beatae','repellendus','magnam','recusandae','quod','explicabo','doloremque','aperiam','consequatur','asperiores','commodi','optio','dolor','labore','temporibus','repellat','veniam','architecto','est','esse','mollitia','nulla','a','similique','eos','alias','dolore','tenetur','deleniti','porro','facere','maxime','corrupti']},ru:{common:['\u0434\u0430\u043B\u0435\u043A\u043E-\u0434\u0430\u043B\u0435\u043A\u043E','\u0437\u0430','\u0441\u043B\u043E\u0432\u0435\u0441\u043D\u044B\u043C\u0438','\u0433\u043E\u0440\u0430\u043C\u0438','\u0432 \u0441\u0442\u0440\u0430\u043D\u0435','\u0433\u043B\u0430\u0441\u043D\u044B\u0445','\u0438 \u0441\u043E\u0433\u043B\u0430\u0441\u043D\u044B\u0445','\u0436\u0438\u0432\u0443\u0442','\u0440\u044B\u0431\u043D\u044B\u0435','\u0442\u0435\u043A\u0441\u0442\u044B'],words:['\u0432\u0434\u0430\u043B\u0438','\u043E\u0442 \u0432\u0441\u0435\u0445','\u043E\u043D\u0438','\u0431\u0443\u043A\u0432\u0435\u043D\u043D\u044B\u0445','\u0434\u043E\u043C\u0430\u0445','\u043D\u0430 \u0431\u0435\u0440\u0435\u0433\u0443','\u0441\u0435\u043C\u0430\u043D\u0442\u0438\u043A\u0430','\u0431\u043E\u043B\u044C\u0448\u043E\u0433\u043E','\u044F\u0437\u044B\u043A\u043E\u0432\u043E\u0433\u043E','\u043E\u043A\u0435\u0430\u043D\u0430','\u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0438\u0439','\u0440\u0443\u0447\u0435\u0435\u043A','\u0434\u0430\u043B\u044C','\u0436\u0443\u0440\u0447\u0438\u0442','\u043F\u043E \u0432\u0441\u0435\u0439','\u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0432\u0430\u0435\u0442','\u0435\u0435','\u0432\u0441\u0435\u043C\u0438','\u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u043C\u0438','\u043F\u0440\u0430\u0432\u0438\u043B\u0430\u043C\u0438','\u044D\u0442\u0430','\u043F\u0430\u0440\u0430\u0434\u0438\u0433\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F','\u0441\u0442\u0440\u0430\u043D\u0430','\u043A\u043E\u0442\u043E\u0440\u043E\u0439','\u0436\u0430\u0440\u0435\u043D\u043D\u044B\u0435','\u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F','\u0437\u0430\u043B\u0435\u0442\u0430\u044E\u0442','\u043F\u0440\u044F\u043C\u043E','\u0440\u043E\u0442','\u0434\u0430\u0436\u0435','\u0432\u0441\u0435\u043C\u043E\u0433\u0443\u0449\u0430\u044F','\u043F\u0443\u043D\u043A\u0442\u0443\u0430\u0446\u0438\u044F','\u043D\u0435','\u0438\u043C\u0435\u0435\u0442','\u0432\u043B\u0430\u0441\u0442\u0438','\u043D\u0430\u0434','\u0440\u044B\u0431\u043D\u044B\u043C\u0438','\u0442\u0435\u043A\u0441\u0442\u0430\u043C\u0438','\u0432\u0435\u0434\u0443\u0449\u0438\u043C\u0438','\u0431\u0435\u0437\u043E\u0440\u0444\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u043D\u044B\u0439','\u043E\u0431\u0440\u0430\u0437','\u0436\u0438\u0437\u043D\u0438','\u043E\u0434\u043D\u0430\u0436\u0434\u044B','\u043E\u0434\u043D\u0430','\u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0430\u044F','\u0441\u0442\u0440\u043E\u0447\u043A\u0430','\u0440\u044B\u0431\u043D\u043E\u0433\u043E','\u0442\u0435\u043A\u0441\u0442\u0430','\u0438\u043C\u0435\u043D\u0438','lorem','ipsum','\u0440\u0435\u0448\u0438\u043B\u0430','\u0432\u044B\u0439\u0442\u0438','\u0431\u043E\u043B\u044C\u0448\u043E\u0439','\u043C\u0438\u0440','\u0433\u0440\u0430\u043C\u043C\u0430\u0442\u0438\u043A\u0438','\u0432\u0435\u043B\u0438\u043A\u0438\u0439','\u043E\u043A\u0441\u043C\u043E\u043A\u0441','\u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0430\u043B','\u043E','\u0437\u043B\u044B\u0445','\u0437\u0430\u043F\u044F\u0442\u044B\u0445','\u0434\u0438\u043A\u0438\u0445','\u0437\u043D\u0430\u043A\u0430\u0445','\u0432\u043E\u043F\u0440\u043E\u0441\u0430','\u043A\u043E\u0432\u0430\u0440\u043D\u044B\u0445','\u0442\u043E\u0447\u043A\u0430\u0445','\u0437\u0430\u043F\u044F\u0442\u043E\u0439','\u043D\u043E','\u0442\u0435\u043A\u0441\u0442','\u0434\u0430\u043B','\u0441\u0431\u0438\u0442\u044C','\u0441\u0435\u0431\u044F','\u0442\u043E\u043B\u043A\u0443','\u043E\u043D','\u0441\u043E\u0431\u0440\u0430\u043B','\u0441\u0435\u043C\u044C','\u0441\u0432\u043E\u0438\u0445','\u0437\u0430\u0433\u043B\u0430\u0432\u043D\u044B\u0445','\u0431\u0443\u043A\u0432','\u043F\u043E\u0434\u043F\u043E\u044F\u0441\u0430\u043B','\u0438\u043D\u0438\u0446\u0438\u0430\u043B','\u0437\u0430','\u043F\u043E\u044F\u0441','\u043F\u0443\u0441\u0442\u0438\u043B\u0441\u044F','\u0434\u043E\u0440\u043E\u0433\u0443','\u0432\u0437\u043E\u0431\u0440\u0430\u0432\u0448\u0438\u0441\u044C','\u043F\u0435\u0440\u0432\u0443\u044E','\u0432\u0435\u0440\u0448\u0438\u043D\u0443','\u043A\u0443\u0440\u0441\u0438\u0432\u043D\u044B\u0445','\u0433\u043E\u0440','\u0431\u0440\u043E\u0441\u0438\u043B','\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439','\u0432\u0437\u0433\u043B\u044F\u0434','\u043D\u0430\u0437\u0430\u0434','\u0441\u0438\u043B\u0443\u044D\u0442','\u0441\u0432\u043E\u0435\u0433\u043E','\u0440\u043E\u0434\u043D\u043E\u0433\u043E','\u0433\u043E\u0440\u043E\u0434\u0430','\u0431\u0443\u043A\u0432\u043E\u0433\u0440\u0430\u0434','\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A','\u0434\u0435\u0440\u0435\u0432\u043D\u0438','\u0430\u043B\u0444\u0430\u0432\u0438\u0442','\u043F\u043E\u0434\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A','\u0441\u0432\u043E\u0435\u0433\u043E','\u043F\u0435\u0440\u0435\u0443\u043B\u043A\u0430','\u0433\u0440\u0443\u0441\u0442\u043D\u044B\u0439','\u0440\u0435\u0442\u043E\u0440\u0438\u0447\u0435\u0441\u043A\u0438\u0439','\u0432\u043E\u043F\u0440\u043E\u0441','\u0441\u043A\u0430\u0442\u0438\u043B\u0441\u044F','\u0435\u0433\u043E','\u0449\u0435\u043A\u0435','\u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u043B','\u0441\u0432\u043E\u0439','\u043F\u0443\u0442\u044C','\u0434\u043E\u0440\u043E\u0433\u0435','\u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043B','\u0440\u0443\u043A\u043E\u043F\u0438\u0441\u044C','\u043E\u043D\u0430','\u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0434\u0438\u043B\u0430','\u043C\u043E\u0435\u0439','\u0432\u0441\u0435','\u043F\u0435\u0440\u0435\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\u0441\u044F','\u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E','\u0440\u0430\u0437','\u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0435','\u0447\u0442\u043E','\u043C\u0435\u043D\u044F','\u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C','\u044D\u0442\u043E','\u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430','\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0439\u0441\u044F','\u0442\u044B','\u043B\u0443\u0447\u0448\u0435','\u0441\u0432\u043E\u044E','\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u0443\u044E','\u0441\u0442\u0440\u0430\u043D\u0443','\u043F\u043E\u0441\u043B\u0443\u0448\u0430\u0432\u0448\u0438\u0441\u044C','\u0440\u0443\u043A\u043E\u043F\u0438\u0441\u0438','\u043D\u0430\u0448','\u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u043B','\u0441\u0432\u043E\u0439','\u043F\u0443\u0442\u044C','\u0432\u0441\u043A\u043E\u0440\u0435','\u0435\u043C\u0443','\u043F\u043E\u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043B\u0441\u044F','\u043A\u043E\u0432\u0430\u0440\u043D\u044B\u0439','\u0441\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043B\u044C','\u0440\u0435\u043A\u043B\u0430\u043C\u043D\u044B\u0445','\u0442\u0435\u043A\u0441\u0442\u043E\u0432','\u043D\u0430\u043F\u043E\u0438\u0432\u0448\u0438\u0439','\u044F\u0437\u044B\u043A\u043E\u043C','\u0440\u0435\u0447\u044C\u044E','\u0437\u0430\u043C\u0430\u043D\u0438\u0432\u0448\u0438\u0439','\u0441\u0432\u043E\u0435','\u0430\u0433\u0435\u043D\u0442\u0441\u0442\u0432\u043E','\u043A\u043E\u0442\u043E\u0440\u043E\u0435','\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043B\u043E','\u0441\u043D\u043E\u0432\u0430','\u0441\u043D\u043E\u0432\u0430','\u0441\u0432\u043E\u0438\u0445','\u043F\u0440\u043E\u0435\u043A\u0442\u0430\u0445','\u0435\u0441\u043B\u0438','\u043F\u0435\u0440\u0435\u043F\u0438\u0441\u0430\u043B\u0438','\u0442\u043E','\u0436\u0438\u0432\u0435\u0442','\u0442\u0430\u043C','\u0434\u043E','\u0441\u0438\u0445','\u043F\u043E\u0440']},sp:{common:['mujer','uno','dolor','m\xE1s','de','poder','mismo','si'],words:['ejercicio','preferencia','perspicacia','laboral','pa\xF1o','suntuoso','molde','namibia','planeador','mirar','dem\xE1s','oficinista','excepci\xF3n','odio','consecuencia','casi','auto','chicharra','velo','elixir','ataque','no','odio','temporal','cu\xF3rum','dign\xEDsimo','facilismo','letra','nihilista','expedici\xF3n','alma','alveolar','aparte','le\xF3n','animal','como','paria','belleza','modo','natividad','justo','ataque','s\xE9quito','pillo','sed','ex','y','voluminoso','temporalidad','verdades','racional','asunci\xF3n','incidente','marejada','placenta','amanecer','fuga','previsor','presentaci\xF3n','lejos','necesariamente','sospechoso','adiposidad','quind\xEDo','p\xF3cima','voluble','d\xE9bito','sinti\xF3','accesorio','falda','sapiencia','volutas','queso','permacultura','laudo','soluciones','entero','pan','litro','tonelada','culpa','libertario','mosca','dictado','reincidente','nascimiento','dolor','escolar','impedimento','m\xEDnima','mayores','repugnante','dulce','obcecado','monta\xF1a','enigma','total','delet\xE9reo','d\xE9cima','c\xE1bala','fotograf\xEDa','dolores','molesto','olvido','paciencia','resiliencia','voluntad','molestias','magn\xEDfico','distinci\xF3n','ovni','marejada','cerro','torre','y','abogada','manantial','corporal','agua','crep\xFAsculo','ataque','desierto','laboriosamente','angustia','afortunado','alma','encefalograma','materialidad','cosas','o','renuncia','error','menos','conejo','abad\xEDa','analfabeto','remo','fugacidad','oficio','en','alm\xE1cigo','vos','pan','represi\xF3n','n\xFAmeros','triste','refugiado','trote','inventor','corchea','repelente','magma','recusado','patr\xF3n','expl\xEDcito','paloma','s\xEDndrome','inmune','autoinmune','comodidad','ley','vietnamita','demonio','tasmania','repeler','ap\xE9ndice','arquitecto','columna','yugo','computador','mula','a','prop\xF3sito','fantas\xEDa','alias','rayo','tenedor','deleznable','ventana','cara','anemia','corrupto']}},la={wordCount:30,skipCommon:!1,lang:'latin'},ca=function(o,t){t=Object.assign({},la,t);var e=oa[t.lang]||oa.latin,n=!t.skipCommon&&!Ze(o);return o.repeat||Ie(o.parent)?(o.value=He(e,t.wordCount,n),o.name=P(o.parent.name)):(o.parent.value=He(e,t.wordCount,n),o.remove()),o},fa=/^lorem([a-z]*)(\d*)$/,pa=function(o,t){var a=[na[o]||na.html];Array.isArray(t)?t.forEach(function(e){a.push('string'==typeof e?na[e]:e)}):'object'==typeof t&&a.push(t);var n=new Qr(a.filter(Boolean));return'css'!==o&&n.get(0).set(fa,$t),n},ha={lang:'en',locale:'en-US',charset:'UTF-8'},da=new Set(['css','sass','scss','less','stylus','sss']),ma={syntax:'html',field:function(n,t){return t||''},text:null,profile:null,variables:{},snippets:{},addons:null,format:null},ga=new Set(['html','xml','xsl','jsx','js','pug','slim','haml','css','sass','scss','less','sss','stylus']),ba=function(o,t){var e=o.getTokenTypeAt(t||o.getCursor());return e&&/^property\b/.test(e)},zi={html:function(n,t){return null===n.getTokenTypeAt(t||n.getCursor())},css:ba,less:ba,sass:ba,scss:ba},ya='[[::emmet-cursor::]]',xa=function(n,t){return void 0===t&&(t=''),t},Ki='emmet-abbreviation',Gi=45,Aa=function(e){return qn(e.map(function(e){return new Oa(e.key,e.value)}))},Oa=function(o,t){this.key=o,this.value=t,this.property=null;var e=t&&t.match(/^([a-z\-]+)(?:\s*:\s*([^\n\r]+))?$/);e&&(this.property=e[1],this.value=e[2]),this.dependencies=[]},ja={defaulValue:{}};Oa.prototype.addDependency=function(e){this.dependencies.push(e)},ja.defaulValue.get=function(){return null==this.value?null:Rn(this.value)[0]},Oa.prototype.keywords=function(){var d=[],n=new Set,r=0,i,t;for(this.property&&d.push(this);r=this.end},Ea.prototype.limit=function(n,t){return new this.constructor(this.string,n,t)},Ea.prototype.peek=function(){return this.string.charCodeAt(this.pos)},Ea.prototype.next=function(){if(this.pos'),Xi=function(o){var t=o.pos;if(or(o,Ja,Ka,!0)){var e=Fa(o,t);return e.type='comment',e}return null},Qi=rr(''),Ji=function(o){var t=o.pos;if(or(o,Qi,Yi,!0)){var e=Fa(o,t);return e.type='cdata',e}return null},$i={xml:!1,special:['script','style'],empty:['img','meta','link','br','base','hr','area','wbr']},Zi=function(o,t,e){this.dom=o,this.type=t,this.syntax=e};Zi.prototype.nodeForPoint=function(o,t){for(var e=this.dom.firstChild,n=null;e;)mn(cr(e),o,t)?(n=e,e=e.firstChild):e=e.nextSibling;return n};var es=function(o,r,e){null==e&&'string'==typeof o&&(e=o.length),this.string=o,this.pos=this.start=r||0,this.end=e};es.prototype.eof=function(){return this.pos>=this.end},es.prototype.limit=function(n,t){return new this.constructor(this.string,n,t)},es.prototype.peek=function(){return this.string.charCodeAt(this.pos)},es.prototype.next=function(){if(this.pos=gn(this.pos,this._sof)},t.prototype.eof=function(){return 0<=gn(this.pos,this._eof)},t.prototype.limit=function(n,o){return new this.constructor(this.editor,n,{from:n,to:o})},t.prototype.peek=function(){var o=this.pos,t=(o.line,o.ch),e=this.editor.getLine(this.pos.line);return t=this._lineLength(this.pos.line)&&(this.pos.line++,this.pos.ch=0),this.eof()&&(this.pos=Object.assign({},this._eof)),e}return NaN},t.prototype.backUp=function(a){var t=this,e=this.editor.constructor,n=this.pos,r=n.line,i=n.ch;for(i-=a||1;0<=r&&0>i;)r--,i+=t._lineLength(r);return this.pos=0>r||0>i?e.Pos(0,0):e.Pos(r,i),this.peek()},t.prototype.current=function(){return this.substring(this.start,this.pos)},t.prototype.substring=function(n,t){return this.editor.getRange(n,t)},t.prototype.error=function(n){var t=new Error(n+' at line '+this.pos.line+', column '+this.pos.ch);return t.originalMessage=n,t.pos=this.pos,t.string=this.string,t},t.prototype._lineLength=function(n){var t=n===this.editor.lastLine();return this.editor.getLine(n).length+(t?0:1)},t}(es),ns='emmet-open-tag',os='emmet-close-tag',rs={emmetExpandAbbreviation:function(a){if(a.somethingSelected())return a.constructor.Pass;var t=a.getCursor(),e=An(a,t),n=!1;if(e)n=xn(a,e.model.ast,e.find());else{var r=bn(a,t);if(r){var i={from:{line:t.line,ch:r.location},to:{line:t.line,ch:r.location+r.abbreviation.length}};n=xn(a,r.abbreviation,i)}}return Sn(a),n||a.constructor.Pass},emmetInsertLineBreak:function(d){var t=d.getCursor();if('xml'===d.getModeAt(t).name){var e=(Object.assign({},t,{ch:t.ch+1}),d.getTokenAt(t)),n=d.getTokenAt(Object.assign({},t,{ch:t.ch+1}));if('tag bracket'===e.type&&'>'===e.string&&'tag bracket'===n.type&&'t.alpha||0.5>=t.size))&&(1===A?n(t):2===A&&o(t))}function a(e,t){return t||(t=e,e=0),e+~~(Math.random()*(t-e+1))}function i(e,t){var n=!1;return function(){n||(e.apply(this,arguments),n=!0,setTimeout(function(){n=!1},t))}}function s(){h&&(O.clearRect(0,0,k,T),P=new Date().getTime(),!y&&(y=P),D=(P-y)/1e3,y=P,0=this.size-(this.bMin+p.snapOffset+this.bGutterSize)&&(e=this.size-(this.bMin+this.bGutterSize)),k.call(this,e),p.onDrag&&p.onDrag())},E=function(){var e=t.getComputedStyle(this.parent),n=this.parent[m]-parseFloat(e[b])-parseFloat(e[v]);this.size=this.a[s]()[u]+this.b[s]()[u]+this.aGutterSize+this.bGutterSize,this.percentage=Math.min(100*(this.size/n),100),this.start=this.a[s]()[f]},k=function(e){this.a.style[u]=a+'('+e/this.size*this.percentage+'% - '+this.aGutterSize+'px)',this.b.style[u]=a+'('+(this.percentage-e/this.size*this.percentage)+'% - '+this.bGutterSize+'px)'},T=function(){var e=this,t=e.a,n=e.b;t[s]()[u]n?n+1:16*n?e+6*((t-e)*n):1>2*n?t:2>3*n?e+6*((t-e)*(.66666-n)):e},c=function(t,n,o){var r,a;return a=.5>=o?o*(n+1):o+n-o*n,r=2*o-a,{r:f(r,a,t+.33333),g:f(r,a,t),b:f(r,a,t-.33333)}},x=function(t,n,o){var r,a,s,d,l,p,c;return d=C(t,n,o),l=S(t,n,o),r=d-l,c=d+l,a=l===d?0:t===d?(60*(n-o)/r+360)%360:n===d?60*(o-t)/r+120:60*(t-n)/r+240,s=c/2,p=0===s?0:1===s?1:.5>=s?r/c:r/(2-c),{h:a,s:p,l:s}},y=function(n,o,r,a){return null==a?'hsl('+m(t(180*n/s),360)+','+t(100*o)+'%,'+t(100*r)+'%)':'hsla('+m(t(180*n/s),360)+','+t(100*o)+'%,'+t(100*r)+'%,'+a+')'},u=function(t){var n,o,r,a,e,i;return i=document.createElement('span'),document.body.appendChild(i),i.style.backgroundColor=t,e=getComputedStyle(i).backgroundColor,document.body.removeChild(i),r=/^rgb\((\d+), (\d+), (\d+)\)$/.exec(e),r||(r=/^rgba\((\d+), (\d+), (\d+), ([\d.]+)\)$/.exec(e)),a=parseInt(r[1]),o=parseInt(r[2]),n=parseInt(r[3]),r[4]?{r:a/255,g:o/255,b:n/255,a:parseFloat(r[4])}:{r:a/255,g:o/255,b:n/255}},e=function(e){var t,n;return n=document.createElement('span'),document.body.appendChild(n),n.style.backgroundColor=e,t=0e&&(e+=t),e},v=function(e,t,n){return t+(n-t)*S(1,C(0,e))},p=function(){function e(f,E,b){var T,d,e,g,h,i,I,k,l,m,N,A,p,L,r,R,t,u,v,w,x;for(this.radius=f,this.width=E,this.lightness=b,L=this.radius,v=this.width,d=this.canvas=document.createElement('canvas'),d.width=d.height=2*L,e=d.getContext('2d'),N=e.createImageData(d.width,d.height),h=N.data,(x=m=0,r=d.height);0<=r?mr;x=0<=r?++m:--m)for(w=A=0,R=d.width;0<=R?AR;w=0<=R?++A:--A)I=x-L,i=w-L,g=o(I*I+i*i),g>L+1.5||(g-=10,u=C(0,S(1,g/(L-v/2-10))),l=n(I,i)/(2*s),t=c(l,u,this.lightness),p=t.r,k=t.g,T=t.b,h[4*(x*d.width+w)+0]=255*p,h[4*(x*d.width+w)+1]=255*k,h[4*(x*d.width+w)+2]=255*T,h[4*(x*d.width+w)+3]=255);e.putImageData(N,0,0)}return e.prototype.drawHSLCircle=function(t,n){var o,r,a,e;return t.width=t.height=2*this.radius,o=t.getContext('2d'),e=this.width,a=this.radius,r=v(n,e,a),o.save(),o.fillStyle='rgba(0,0,0,0.3)',o.beginPath(),o.arc(a,a,a,0,2*s),o.fill(),o.fillStyle='black',o.beginPath(),o.arc(a,a,r,0,2*s),o.arc(a,a,r-e,0,2*s,!0),o.fill(),o.globalCompositeOperation='source-in',o.drawImage(this.canvas,0,0),o.restore()},e}(),i=function(e){return'string'==typeof e&&(e=u(e)),null!=e.r&&null!=e.g&&null!=e.b?(e=x(e.r,e.g,e.b),e.h=e.h*s/180):null!=e.h&&null!=e.s&&null!=e.l&&(e.h=e.h*s/180),e},a=function(){function e(e){this.color=i(e),this.refColor=this.color,this.el=E(),this.circleContainer=this.el.appendChild(l.call(this)),this.lSlider=this.el.appendChild(b.call(this)),this.colorPreview=this.el.appendChild(f.call(this)),d.call(this),this.setLightness(this.color.l)}var d,l,f,h,b,E,T,w;return T=80,w=25,e.prototype.setHue=function(e){var n,o,r;return this.color.h=e,r=v(this.color.s,w,T)-w/2,o=T-w/2,g(this.hueKnob,{left:t(o+Math.cos(e)*r+6-1)+'px',top:t(o+Math.sin(e)*r+6-1)+'px'}),this.colorPreview.style.backgroundColor=this.lKnob.style.backgroundColor=this.hueKnob.style.backgroundColor=y(this.color.h,this.color.s,this.color.l),n=y(this.color.h,this.color.s,.5),this.lSlider.style.backgroundImage='-webkit-linear-gradient(bottom, black, '+n+' 50%, white)',this.lSlider.style.backgroundImage='-moz-linear-gradient(bottom, black, '+n+' 50%, white)',this.emit('changed')},e.prototype.setSaturation=function(e){return this.color.s=e,this.circle.drawHSLCircle(this.circleCanvas,e),this.setHue(this.color.h)},e.prototype.setLightness=function(e){return this.color.l=e,this.circle=new p(T,w,e),this.lKnob.style.top=(1-e)*this.lSlider._height-11+'px',this.setSaturation(this.color.s)},e.prototype.setHSL=function(e,t,n){return this.color.h=m(e,360)*s/180,this.color.s=C(0,S(1,t)),n=C(0,S(1,n)),this.setLightness(n)},e.prototype.getHSL=function(){return{h:m(180*this.color.h/s,360),s:this.color.s,l:this.color.l}},e.prototype.setRGB=function(t,n,o){var r,a,e,i;return e=x(t,n,o),r=e.h,i=e.s,a=e.l,this.setHSL(r,i,a)},e.prototype.getRGB=function(){return c(this.color.h/(2*s),this.color.s,this.color.l)},e.prototype.getCSS=function(){return y(this.color.h,this.color.s,this.color.l)},e.prototype.setCSS=function(t){var n,o,r,e;return e=u(t),r=e.r,o=e.g,n=e.b,this.setRGB(r,o,n)},e.prototype.on=function(e,t){var n;return null==this._listeners&&(this._listeners={}),(null==(n=this._listeners)[e]?n[e]=[]:n[e]).push(t)},e.prototype.emit=function(){var t,n,o,a,i,e,s,d;if(n=arguments[0],t=2<=arguments.length?r.call(arguments,1):[],this._listeners){for(s=null==(e=this._listeners[n])?[]:e,d=[],(o=0,i=s.length);o=7*s/8||p<=-7*s/8?t.style.cursor='ew-resize':s/8<=p&&p<3*s/8||-7*s/8HSL":'HEX24>RGB>HSL',"HEX32>HSLA":'HEX32>RGBA>HSLA',"HEX24>CMYK":'HEX24>RGB>CMY>CMYK',"RGB>CMYK":'RGB>CMY>CMYK'},i=Color.Space=function(t,n){s[n]&&(n=s[n]);var o=n.split('>');if('object'==typeof t&&0<=t[0]){for(var r=o[0],d={},l=0,p;l>0)+','+(e.G>>0)+','+(e.B>>0)+')'},i.RGBA_W3=function(e){var t='number'==typeof e.A?e.A/255:1;return'rgba('+(e.R>>0)+','+(e.G>>0)+','+(e.B>>0)+','+t+')'},i.W3_RGB=function(e){return e=e.substr(4,e.length-5).split(','),{R:parseInt(e[0],10),G:parseInt(e[1],10),B:parseInt(e[2],10)}},i.W3_RGBA=function(e){return e=e.substr(5,e.length-6).split(','),{R:parseInt(e[0],10),G:parseInt(e[1],10),B:parseInt(e[2],10),A:255*parseFloat(e[3])}},i.HSL_W3=function(e){return'hsl('+(e.H+.5>>0)+','+(e.S+.5>>0)+'%,'+(e.L+.5>>0)+'%)'},i.HSLA_W3=function(e){var t='number'==typeof e.A?e.A/255:1;return'hsla('+(e.H+.5>>0)+','+(e.S+.5>>0)+'%,'+(e.L+.5>>0)+'%,'+t+')'},i.W3_HSL=function(e){var t=e.indexOf('(')+1,n=e.indexOf(')');return e=e.substr(t,n-t).split(','),{H:parseInt(e[0],10),S:parseInt(e[1],10),L:parseInt(e[2],10)}},i.W3_HSLA=function(e){var t=e.indexOf('(')+1,n=e.indexOf(')');return e=e.substr(t,n-t).split(','),{H:parseInt(e[0],10),S:parseInt(e[1],10),L:parseInt(e[2],10),A:255*parseFloat(e[3],10)}},i.W3_HEX=i.W3_HEX24=function(e){return'#'===e.substr(0,1)&&(e=e.substr(1)),3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),parseInt('0x'+e,16)},i.W3_HEX32=function(e){return'#'===e.substr(0,1)&&(e=e.substr(1)),6===e.length?parseInt('0xFF'+e,10):parseInt('0x'+e,16)},i.HEX_W3=i.HEX24_W3=function(e,t){t||(t=6),e||(e=0);var n=e.toString(16),o;for(o=n.length;ot;)n=n.substr(1),o--;return'#'+n},i.HEX32_W3=function(e){return i.HEX_W3(e,8)},i.HEX_RGB=i.HEX24_RGB=function(e){return{R:e>>16,G:255&e>>8,B:255&e}},i.HEX32_RGBA=function(e){return{R:255&e>>>16,G:255&e>>>8,B:255&e,A:e>>>24}},i.RGBA_HEX32=function(e){return(e.A<<24|e.R<<16|e.G<<8|e.B)>>>0},i.RGB_HEX24=i.RGB_HEX=function(e){return 0>e.R&&(e.R=0),0>e.G&&(e.G=0),0>e.B&&(e.B=0),255c?p/(e+d):p/(2-e-d);var i=((e-o)/6+p/2)/p,g=((e-a)/6+p/2)/p,l=((e-s)/6+p/2)/p;o===e?u=l-g:a===e?u=1/3+i-l:s===e&&(u=2/3+g-i),0>u&&(u+=1),1c&&(c+=1),1r?r*(1+o):r+o-o*r,d=2*r-l,i=n+1/3,0>i&&(i+=1),16*i?d+6*(l-d)*i:1>2*i?l:2>3*i?d+6*((l-d)*(2/3-i)):d,i=n,0>i&&(i+=1),16*i?d+6*(l-d)*i:1>2*i?l:2>3*i?d+6*((l-d)*(2/3-i)):d,i=n-1/3,0>i&&(i+=1),16*i?d+6*(l-d)*i:1>2*i?l:2>3*i?d+6*((l-d)*(2/3-i)):d),{R:255*a,G:255*e,B:255*s,A:t.A}},i.HSVA_RGBA=i.HSV_RGB=function(n){var r=n.H/360,a=n.S/100,s=n.V/100,d,l,p,c,u,i;if(0==a)d=l=p=t(255*s);else switch(1<=r&&(r=0),r=6*r,c=r-o(r),u=t(255*s*(1-a)),p=t(255*s*(1-a*c)),i=t(255*s*(1-a*(1-c))),s=t(255*s),o(r)){case 0:d=s,l=i,p=u;break;case 1:d=p,l=s,p=u;break;case 2:d=u,l=s,p=i;break;case 3:d=u,l=p,p=s;break;case 4:d=i,l=u,p=s;break;case 5:d=s,l=u,p=p;}return{R:d,G:l,B:p,A:n.A}}}(),Inlet=function(){function e(b,C){function c(){var e=d.value+'',t=N.getCursor(!0),n=w(t,'number');if(n){var o={line:t.line,ch:n.start},r={line:t.line,ch:n.end};N.dragging=!0,N.replaceRange(e,o,r)}}function S(n){if(!N.somethingSelected()){I=n.target;var a=N.getCursor(!0),d=N.getTokenAt(a);cursorOffset=N.cursorCoords(!0,'page');var l=N.cursorCoords(!0,L).left,o=w(a,'number'),p=w(a,'hsl'),r=w(a,'hex'),s=w(a,'rgb'),t=w(a,'boolean'),c=cursorOffset.top-h;cursorOffset.topHSL>RGB>HEX24>W3'),P(picked,'hex')})}else if(p){var g=p.string;e=new thistle.Picker(g),e.setCSS(g),e.presentModal(m,c),e.on('changed',function(){picked=e.getCSS(),P(picked,'hsl')})}else if(s){var g=s.string;e=new thistle.Picker(g),e.setCSS(g),e.presentModal(m,c),e.on('changed',function(){picked=e.getCSS(),picked=Color.Space(picked,'W3>HSL>RGB>W3'),P(picked,'rgb')})}}}function T(e){var t,n;return t=0===e?[-100,100]:[3*-e,5*e],t[0]=d&&t.ch<=l)return e=null,{start:d,end:l,string:a};e=o.exec(r)}}}var N=b,d,e,A;C||(C={}),C.picker||(C.picker={}),C.slider||(C.slider={}),C.clicker||(C.clicker={});var g=C.container||document.body,h=C.picker.topOffset||220,i=C.picker.bottomOffset||16,f=C.picker.topBoundary||250,k=C.picker.leftOffset||75,l=C.slider.yOffset||15,m=C.slider.xOffset||0,n=C.slider.width,L=C.horizontalMode||'page',o=C.fixedContainer,p=C.slider.callback||function(){},r=C.picker.callback||function(){},s=C.clicker.callback||function(){},t=N.getWrapperElement();t.addEventListener('mouseup',S),document.body.addEventListener('mouseup',function(e){e.target===I||e.target===v||e.target===d||e.target===u||e.target===A||(v.style.visibility='hidden',u.style.visibility='hidden')}),N.setOption('onKeyEvent',function(){if(event=1==arguments.length?arguments[0]:arguments[1],event.keyCode==y||event.keyCode==O){if('visible'===v.style.visibility)return d.stepDown(1),c(),!0;event.altKey&&S()}else if(event.keyCode==E||event.keyCode==R){if('visible'===v.style.visibility)return d.stepUp(1),c(),!0;event.altKey&&S()}else v.style.visibility='hidden'});var u=document.createElement('div');u.className='inlet_clicker',u.style.visibility='hidden',u.style.position='absolute',g.appendChild(u);var A=document.createElement('input');A.className='checkbox',A.setAttribute('type','checkbox'),A.addEventListener('change',function(){var t=A.checked+'',n=N.getCursor(!0),o=w(n,'boolean');if(o){var e={line:n.line,ch:o.start},r={line:n.line,ch:o.end};N.replaceRange(t,e,r)}}),u.appendChild(A);var v=document.createElement('div');v.className='inlet_slider',v.style.visibility='hidden',n&&(v.style.width=n),v.style.position=o?'fixed':'absolute',v.style.top=0,g.appendChild(v);var d=document.createElement('input');d.className='range',d.setAttribute('type','range'),d.addEventListener('input',c),d.addEventListener('change',c);var x=-1=a.start&&(n.unshift(a.comment),this.leading.splice(r,1),this.trailing.splice(r,1));n.length&&(e.innerComments=n)}},e.prototype.findTrailingComments=function(e,t){var n=[];if(0=t.end.offset&&n.unshift(r.comment);return this.trailing.length=0,n}var a=this.stack[this.stack.length-1];if(a&&a.node.trailingComments){var i=a.node.trailingComments[0];i&&i.range[0]>=t.end.offset&&(n=a.node.trailingComments,delete a.node.trailingComments)}return n},e.prototype.findLeadingComments=function(e,t){for(var n=[],o,r;0=t.start.offset);)o=this.stack.pop().node;if(o){for(var a=o.leadingComments?o.leadingComments.length:0,s=a-1,i;0<=s;--s)i=o.leadingComments[s],i.range[1]<=t.start.offset&&(n.unshift(i),o.leadingComments.splice(s,1));return o.leadingComments&&0===o.leadingComments.length&&delete o.leadingComments,n}for(var s=this.leading.length-1,r;0<=s;--s)r=this.leading[s],r.start<=t.start.offset&&(n.unshift(r.comment),this.leading.splice(s,1));return n},e.prototype.visitNode=function(e,t){if(!(e.type===o.Syntax.Program&&0":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.sourceType=t&&'module'===t.sourceType?'module':'script',this.lookahead=null,this.hasLineTerminator=!1,this.context={allowIn:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:'module'===this.sourceType},this.tokens=[],this.startMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.lastMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.nextToken(),this.lastMarker={index:this.scanner.index,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],n=1;n>='===e||'>>>='===e||'&='===e||'^='===e||'|='===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,o=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=o,r},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,o=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=o||this.context.firstCoverInitializedNameError,r},e.prototype.consumeSemicolon=function(){this.match(';')?this.nextToken():!this.hasLineTerminator&&(this.lookahead.type!==i.Token.EOF&&!this.match('}')&&this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.lineNumber=this.startMarker.lineNumber,this.lastMarker.lineStart=this.startMarker.lineStart)},e.prototype.parsePrimaryExpression=function(){var e=this.createNode(),t,n,o,a;switch(this.lookahead.type){case i.Token.Identifier:'module'===this.sourceType&&'await'===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),t=this.finalize(e,new l.Identifier(this.nextToken().value));break;case i.Token.NumericLiteral:case i.Token.StringLiteral:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,r.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,o=this.nextToken(),a=this.getTokenRaw(o),t=this.finalize(e,new l.Literal(o.value,a));break;case i.Token.BooleanLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,o=this.nextToken(),o.value='true'===o.value,a=this.getTokenRaw(o),t=this.finalize(e,new l.Literal(o.value,a));break;case i.Token.NullLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,o=this.nextToken(),o.value=null,a=this.getTokenRaw(o),t=this.finalize(e,new l.Literal(o.value,a));break;case i.Token.Template:t=this.parseTemplateLiteral();break;case i.Token.Punctuator:n=this.lookahead.value,'('===n?(this.context.isBindingElement=!1,t=this.inheritCoverGrammar(this.parseGroupExpression)):'['===n?t=this.inheritCoverGrammar(this.parseArrayInitializer):'{'===n?t=this.inheritCoverGrammar(this.parseObjectInitializer):'/'===n||'/='===n?(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,o=this.nextRegexToken(),a=this.getTokenRaw(o),t=this.finalize(e,new l.RegexLiteral(o.value,a,o.regex))):this.throwUnexpectedToken(this.nextToken());break;case i.Token.Keyword:!this.context.strict&&this.context.allowYield&&this.matchKeyword('yield')?t=this.parseIdentifierName():!this.context.strict&&this.matchKeyword('let')?t=this.finalize(e,new l.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword('function')?t=this.parseFunctionExpression():this.matchKeyword('this')?(this.nextToken(),t=this.finalize(e,new l.ThisExpression)):this.matchKeyword('class')?t=this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:this.throwUnexpectedToken(this.nextToken());}return t},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect('...');var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new l.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect('[');!this.match(']');)if(this.match(','))this.nextToken(),t.push(null);else if(this.match('...')){var n=this.parseSpreadElement();this.match(']')||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(',')),t.push(n)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match(']')||this.expect(',');return this.expect(']'),this.finalize(e,new l.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,n},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!1;var n=this.parseFormalParameters(),o=this.parsePropertyMethod(n);return this.context.allowYield=t,this.finalize(e,new l.FunctionExpression(null,n.params,o,!1))},e.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),t=this.nextToken(),n=null;switch(t.type){case i.Token.StringLiteral:case i.Token.NumericLiteral:this.context.strict&&t.octal&&this.tolerateUnexpectedToken(t,r.Messages.StrictOctalLiteral);var o=this.getTokenRaw(t);n=this.finalize(e,new l.Literal(t.value,o));break;case i.Token.Identifier:case i.Token.BooleanLiteral:case i.Token.NullLiteral:case i.Token.Keyword:n=this.finalize(e,new l.Identifier(t.value));break;case i.Token.Punctuator:'['===t.value?(n=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect(']')):this.throwUnexpectedToken(t);break;default:this.throwUnexpectedToken(t);}return n},e.prototype.isPropertyKey=function(e,t){return e.type===d.Syntax.Identifier&&e.name===t||e.type===d.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t=this.createNode(),n=this.lookahead,o=!1,a=!1,s=!1,d,p,c;n.type===i.Token.Identifier?(this.nextToken(),p=this.finalize(t,new l.Identifier(n.value))):this.match('*')?this.nextToken():(o=this.match('['),p=this.parseObjectPropertyKey());var u=this.qualifiedPropertyName(this.lookahead);if(n.type===i.Token.Identifier&&'get'===n.value&&u)d='get',o=this.match('['),p=this.parseObjectPropertyKey(),this.context.allowYield=!1,c=this.parseGetterMethod();else if(n.type===i.Token.Identifier&&'set'===n.value&&u)d='set',o=this.match('['),p=this.parseObjectPropertyKey(),c=this.parseSetterMethod();else if(n.type===i.Token.Punctuator&&'*'===n.value&&u)d='init',o=this.match('['),p=this.parseObjectPropertyKey(),c=this.parseGeneratorMethod(),a=!0;else if(p||this.throwUnexpectedToken(this.lookahead),d='init',this.match(':'))!o&&this.isPropertyKey(p,'__proto__')&&(e.value&&this.tolerateError(r.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),c=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match('('))c=this.parsePropertyMethodFunction(),a=!0;else if(n.type===i.Token.Identifier){var h=this.finalize(t,new l.Identifier(n.value));if(this.match('=')){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),s=!0;var m=this.isolateCoverGrammar(this.parseAssignmentExpression);c=this.finalize(t,new l.AssignmentPattern(h,m))}else s=!0,c=h}else this.throwUnexpectedToken(this.nextToken());return this.finalize(t,new l.Property(d,p,o,c,a,s))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect('{');for(var t=[],n={value:!1};!this.match('}');)t.push(this.parseObjectProperty(n)),this.match('}')||this.expectCommaSeparator();return this.expect('}'),this.finalize(e,new l.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){o.assert(this.lookahead.head,'Template literal must start with a template head');var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new l.TemplateElement(n,t.tail))},e.prototype.parseTemplateElement=function(){this.lookahead.type!==i.Token.Template&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new l.TemplateElement(n,t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],n=[],o=this.parseTemplateHead();for(n.push(o);!o.tail;)t.push(this.parseExpression()),o=this.parseTemplateElement(),n.push(o);return this.finalize(e,new l.TemplateLiteral(n,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case d.Syntax.Identifier:case d.Syntax.MemberExpression:case d.Syntax.RestElement:case d.Syntax.AssignmentPattern:break;case d.Syntax.SpreadElement:e.type=d.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case d.Syntax.ArrayExpression:e.type=d.Syntax.ArrayPattern;for(var t=0;t')||this.expect('=>'),e={type:p,params:[]};else{var t=this.lookahead,n=[];if(this.match('...'))e=this.parseRestElement(n),this.expect(')'),this.match('=>')||this.expect('=>'),e={type:p,params:[e]};else{var o=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(',')){var r=[];for(this.context.isAssignmentTarget=!1,r.push(e);this.startMarker.index')||this.expect('=>'),this.context.isBindingElement=!1;for(var a=0;a')&&(e.type===d.Syntax.Identifier&&'yield'===e.name&&(o=!0,e={type:p,params:[e]}),!o)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===d.Syntax.SequenceExpression)for(var a=0;a=o);){for(;2')){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var o=this.reinterpretAsCoverFormalsList(e);if(o){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var a=this.context.strict,i=this.context.allowYield;this.context.allowYield=!0;var s=this.startNode(t);this.expect('=>');var c=this.match('{')?this.parseFunctionSourceElements():this.isolateCoverGrammar(this.parseAssignmentExpression),u=c.type!==d.Syntax.BlockStatement;this.context.strict&&o.firstRestricted&&this.throwUnexpectedToken(o.firstRestricted,o.message),this.context.strict&&o.stricted&&this.tolerateUnexpectedToken(o.stricted,o.message),e=this.finalize(s,new l.ArrowFunctionExpression(o.params,c,u)),this.context.strict=a,this.context.allowYield=i}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(r.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===d.Syntax.Identifier){var h=e;this.scanner.isRestrictedWord(h.name)&&this.tolerateUnexpectedToken(n,r.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(h.name)&&this.tolerateUnexpectedToken(n,r.Messages.StrictReservedWord)}this.match('=')?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),n=this.nextToken();var m=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new l.AssignmentExpression(n.value,e,m)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(',')){for(var n=[t];this.startMarker.index',t.TokenName[n.Identifier]='Identifier',t.TokenName[n.Keyword]='Keyword',t.TokenName[n.NullLiteral]='Null',t.TokenName[n.NumericLiteral]='Numeric',t.TokenName[n.Punctuator]='Punctuator',t.TokenName[n.StringLiteral]='String',t.TokenName[n.RegularExpression]='RegularExpression',t.TokenName[n.Template]='Template'},function(t,n,o){'use strict';function r(e){return'0123456789abcdef'.indexOf(e.toLowerCase())}function a(e){return'01234567'.indexOf(e)}var i=o(4),s=o(5),d=o(9),l=o(7),p=function(){function t(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.length=e.length,this.index=0,this.lineNumber=0=this.length},t.prototype.throwUnexpectedToken=function(e){void 0===e&&(e=s.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},t.prototype.tolerateUnexpectedToken=function(){this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,s.Messages.UnexpectedTokenIllegal)},t.prototype.skipSingleLineComment=function(e){var t,n,o;for(this.trackComment&&(t=[],n=this.index-e,o={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var r=this.source.charCodeAt(this.index);if(++this.index,d.Character.isLineTerminator(r)){if(this.trackComment){o.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[n+e,this.index-1],range:[n,this.index-1],loc:o};t.push(a)}return 13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(this.trackComment){o.end={line:this.lineNumber,column:this.index-this.lineStart};var a={multiLine:!1,slice:[n+e,this.index],range:[n,this.index],loc:o};t.push(a)}return t},t.prototype.skipMultiLineComment=function(){var e,t,n;for(this.trackComment&&(e=[],t=this.index-2,n={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(d.Character.isLineTerminator(o))13===o&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===o){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var r={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:n};e.push(r)}return e}++this.index}else++this.index}if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var r={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:n};e.push(r)}return this.tolerateUnexpectedToken(),e},t.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index,n;!this.eof();)if(n=this.source.charCodeAt(this.index),d.Character.isWhiteSpace(n))++this.index;else if(d.Character.isLineTerminator(n))++this.index,13===n&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===n){if(n=this.source.charCodeAt(this.index+1),47===n){this.index+=2;var o=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(o)),t=!0}else if(42===n){this.index+=2;var o=this.skipMultiLineComment();this.trackComment&&(e=e.concat(o))}else break;}else if(t&&45===n){if(45===this.source.charCodeAt(this.index+1)&&62===this.source.charCodeAt(this.index+2)){this.index+=3;var o=this.skipSingleLineComment(3);this.trackComment&&(e=e.concat(o))}else break;}else if(60!==n)break;else if('!--'===this.source.slice(this.index+1,this.index+4)){this.index+=4;var o=this.skipSingleLineComment(4);this.trackComment&&(e=e.concat(o))}else break;return e},t.prototype.isFutureReservedWord=function(e){return'enum'===e||'export'===e||'import'===e||'super'===e},t.prototype.isStrictModeReservedWord=function(e){return'implements'===e||'interface'===e||'package'===e||'private'===e||'protected'===e||'public'===e||'static'===e||'yield'===e||'let'===e},t.prototype.isRestrictedWord=function(e){return'eval'===e||'arguments'===e},t.prototype.isKeyword=function(e){switch(e.length){case 2:return'if'===e||'in'===e||'do'===e;case 3:return'var'===e||'for'===e||'new'===e||'try'===e||'let'===e;case 4:return'this'===e||'else'===e||'case'===e||'void'===e||'with'===e||'enum'===e;case 5:return'while'===e||'break'===e||'catch'===e||'throw'===e||'const'===e||'yield'===e||'class'===e||'super'===e;case 6:return'return'===e||'typeof'===e||'delete'===e||'switch'===e||'export'===e||'import'===e;case 7:return'default'===e||'finally'===e||'extends'===e;case 8:return'function'===e||'continue'===e||'debugger'===e;case 10:return'instanceof'===e;default:return!1;}},t.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(55296<=t&&56319>=t){var n=this.source.charCodeAt(e+1);if(56320<=n&&57343>=n){var o=t;t=1024*(o-55296)+n-56320+65536}}return t},t.prototype.scanHexEscape=function(t){for(var n='u'===t?4:2,o=0,a=0;at)return this.index=e,this.getComplexIdentifier();if(d.Character.isIdentifierPart(t))++this.index;else break}return this.source.slice(e,this.index)},t.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index),t=d.Character.fromCodePoint(e);this.index+=t.length;var n;for(92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,'{'===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape('u'),e=n.charCodeAt(0),(!n||'\\'===n||!d.Character.isIdentifierStart(e))&&this.throwUnexpectedToken()),t=n);!this.eof()&&(e=this.codePointAt(this.index),!!d.Character.isIdentifierPart(e));)n=d.Character.fromCodePoint(e),t+=n,this.index+=n.length,92===e&&(t=t.substr(0,t.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,'{'===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape('u'),e=n.charCodeAt(0),(!n||'\\'===n||!d.Character.isIdentifierPart(e))&&this.throwUnexpectedToken()),t+=n);return t},t.prototype.octalToDecimal=function(e){var t='0'!==e,n=a(e);return!this.eof()&&d.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,n=8*n+a(this.source[this.index++]),0<='0123'.indexOf(e)&&!this.eof()&&d.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(n=8*n+a(this.source[this.index++]))),{code:n,octal:t}},t.prototype.scanIdentifier=function(){var e=this.index,t=92===this.source.charCodeAt(e)?this.getComplexIdentifier():this.getIdentifier(),n;return n=1===t.length?l.Token.Identifier:this.isKeyword(t)?l.Token.Keyword:'null'===t?l.Token.NullLiteral:'true'===t||'false'===t?l.Token.BooleanLiteral:l.Token.Identifier,{type:n,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},t.prototype.scanPunctuator=function(){var e={type:l.Token.Punctuator,value:'',lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index},t=this.source[this.index];return'('===t||'{'===t?('{'===t&&this.curlyStack.push('{'),++this.index):'.'===t?(++this.index,'.'===this.source[this.index]&&'.'===this.source[this.index+1]&&(this.index+=2,t='...')):'}'===t?(++this.index,this.curlyStack.pop()):')'===t||';'===t||','===t||'['===t||']'===t||':'===t||'?'===t||'~'===t?++this.index:(t=this.source.substr(this.index,4),'>>>='===t?this.index+=4:(t=t.substr(0,3),'==='===t||'!=='===t||'>>>'===t||'<<='===t||'>>='===t||'**='===t?this.index+=3:(t=t.substr(0,2),'&&'===t||'||'===t||'=='===t||'!='===t||'+='===t||'-='===t||'*='===t||'/='===t||'++'===t||'--'===t||'<<'===t||'>>'===t||'&='===t||'|='===t||'^='===t||'%='===t||'<='===t||'>='===t||'=>'===t||'**'===t?this.index+=2:(t=this.source[this.index],0<='<>=!+-*%&|^/'.indexOf(t)&&++this.index)))),this.index===e.start&&this.throwUnexpectedToken(),e.end=this.index,e.value=t,e},t.prototype.scanHexLiteral=function(e){for(var t='';!this.eof()&&!!d.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),d.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:l.Token.NumericLiteral,value:parseInt('0x'+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},t.prototype.scanBinaryLiteral=function(e){for(var t='',n;!this.eof()&&(n=this.source[this.index],'0'===n||'1'===n);)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),this.eof()||(n=this.source.charCodeAt(this.index),(d.Character.isIdentifierStart(n)||d.Character.isDecimalDigit(n))&&this.throwUnexpectedToken()),{type:l.Token.NumericLiteral,value:parseInt(t,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},t.prototype.scanOctalLiteral=function(e,t){var n='',o=!1;for(d.Character.isOctalDigit(e.charCodeAt(0))?(o=!0,n='0'+this.source[this.index++]):++this.index;!this.eof()&&!!d.Character.isOctalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];return o||0!==n.length||this.throwUnexpectedToken(),(d.Character.isIdentifierStart(this.source.charCodeAt(this.index))||d.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:l.Token.NumericLiteral,value:parseInt(n,8),octal:o,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},t.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1,t;e=i?e(i):o}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,o));try{RegExp(r)}catch(t){this.throwUnexpectedToken(s.Messages.InvalidRegExp)}try{return new RegExp(t,n)}catch(e){return null}},t.prototype.scanRegExpBody=function(){var e=this.source[this.index];i.assert('/'===e,'Regular expression literal must start with a slash');for(var t=this.source[this.index++],n=!1,o=!1;!this.eof();)if(e=this.source[this.index++],t+=e,'\\'===e)e=this.source[this.index++],d.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(s.Messages.UnterminatedRegExp),t+=e;else if(d.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(s.Messages.UnterminatedRegExp);else if(n)']'===e&&(n=!1);else if('/'===e){o=!0;break}else'['===e&&(n=!0);o||this.throwUnexpectedToken(s.Messages.UnterminatedRegExp);var r=t.substr(1,t.length-2);return{value:r,literal:t}},t.prototype.scanRegExpFlags=function(){for(var e='',t='',n;!this.eof()&&(n=this.source[this.index],!!d.Character.isIdentifierPart(n.charCodeAt(0)));)if(++this.index,'\\'!==n||this.eof())t+=n,e+=n;else if(n=this.source[this.index],'u'===n){++this.index;var o=this.index;if(n=this.scanHexEscape('u'),n)for(t+=n,e+='\\u';oe&&d.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},t)}();n.Scanner=p},function(t,n){'use strict';var o={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};n.Character={fromCodePoint:function(t){return 65536>t?e(t):e(55296+(t-65536>>10))+e(56320+(1023&t-65536))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||5760<=e&&0<=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||65<=e&&90>=e||97<=e&&122>=e||92===e||128<=e&&o.NonAsciiIdentifierStart.test(n.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||65<=e&&90>=e||97<=e&&122>=e||48<=e&&57>=e||92===e||128<=e&&o.NonAsciiIdentifierPart.test(n.Character.fromCodePoint(e))},isDecimalDigit:function(e){return 48<=e&&57>=e},isHexDigit:function(e){return 48<=e&&57>=e||65<=e&&70>=e||97<=e&&102>=e},isOctalDigit:function(e){return 48<=e&&55>=e}}},function(e,t,n){'use strict';var o=n(2),r=function(){return function(e){this.type=o.Syntax.ArrayExpression,this.elements=e}}();t.ArrayExpression=r;var a=function(){return function(e){this.type=o.Syntax.ArrayPattern,this.elements=e}}();t.ArrayPattern=a;var i=function(){return function(e,t,n){this.type=o.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=n}}();t.ArrowFunctionExpression=i;var s=function(){return function(e,t,n){this.type=o.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=n}}();t.AssignmentExpression=s;var d=function(){return function(e,t){this.type=o.Syntax.AssignmentPattern,this.left=e,this.right=t}}();t.AssignmentPattern=d;var l=function(){return function(e,t,n){this.type='||'===e||'&&'===e?o.Syntax.LogicalExpression:o.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=n}}();t.BinaryExpression=l;var p=function(){return function(e){this.type=o.Syntax.BlockStatement,this.body=e}}();t.BlockStatement=p;var c=function(){return function(e){this.type=o.Syntax.BreakStatement,this.label=e}}();t.BreakStatement=c;var u=function(){return function(e,t){this.type=o.Syntax.CallExpression,this.callee=e,this.arguments=t}}();t.CallExpression=u;var h=function(){return function(e,t){this.type=o.Syntax.CatchClause,this.param=e,this.body=t}}();t.CatchClause=h;var m=function(){return function(e){this.type=o.Syntax.ClassBody,this.body=e}}();t.ClassBody=m;var g=function(){return function(e,t,n){this.type=o.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=n}}();t.ClassDeclaration=g;var f=function(){return function(e,t,n){this.type=o.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=n}}();t.ClassExpression=f;var y=function(){return function(e,t){this.type=o.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t}}();t.ComputedMemberExpression=y;var b=function(){return function(e,t,n){this.type=o.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n}}();t.ConditionalExpression=b;var v=function(){return function(e){this.type=o.Syntax.ContinueStatement,this.label=e}}();t.ContinueStatement=v;var x=function(){return function(){this.type=o.Syntax.DebuggerStatement}}();t.DebuggerStatement=x;var C=function(){return function(e,t){this.type=o.Syntax.ExpressionStatement,this.expression=e,this.directive=t}}();t.Directive=C;var S=function(){return function(e,t){this.type=o.Syntax.DoWhileStatement,this.body=e,this.test=t}}();t.DoWhileStatement=S;var E=function(){return function(){this.type=o.Syntax.EmptyStatement}}();t.EmptyStatement=E;var k=function(){return function(e){this.type=o.Syntax.ExportAllDeclaration,this.source=e}}();t.ExportAllDeclaration=k;var T=function(){return function(e){this.type=o.Syntax.ExportDefaultDeclaration,this.declaration=e}}();t.ExportDefaultDeclaration=T;var w=function(){return function(e,t,n){this.type=o.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n}}();t.ExportNamedDeclaration=w;var I=function(){return function(e,t){this.type=o.Syntax.ExportSpecifier,this.exported=t,this.local=e}}();t.ExportSpecifier=I;var N=function(){return function(e){this.type=o.Syntax.ExpressionStatement,this.expression=e}}();t.ExpressionStatement=N;var A=function(){return function(e,t,n){this.type=o.Syntax.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1}}();t.ForInStatement=A;var L=function(){return function(e,t,n){this.type=o.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=n}}();t.ForOfStatement=L;var R=function(){return function(e,t,n,r){this.type=o.Syntax.ForStatement,this.init=e,this.test=t,this.update=n,this.body=r}}();t.ForStatement=R;var O=function(){return function(e,t,n,r){this.type=o.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=n,this.generator=r,this.expression=!1}}();t.FunctionDeclaration=O;var P=function(){return function(e,t,n,r){this.type=o.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=n,this.generator=r,this.expression=!1}}();t.FunctionExpression=P;var D=function(){return function(e){this.type=o.Syntax.Identifier,this.name=e}}();t.Identifier=D;var _=function(){return function(e,t,n){this.type=o.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=n}}();t.IfStatement=_;var M=function(){return function(e,t){this.type=o.Syntax.ImportDeclaration,this.specifiers=e,this.source=t}}();t.ImportDeclaration=M;var F=function(){return function(e){this.type=o.Syntax.ImportDefaultSpecifier,this.local=e}}();t.ImportDefaultSpecifier=F;var B=function(){return function(e){this.type=o.Syntax.ImportNamespaceSpecifier,this.local=e}}();t.ImportNamespaceSpecifier=B;var U=function(){return function(e,t){this.type=o.Syntax.ImportSpecifier,this.local=e,this.imported=t}}();t.ImportSpecifier=U;var V=function(){return function(e,t){this.type=o.Syntax.LabeledStatement,this.label=e,this.body=t}}();t.LabeledStatement=V;var W=function(){return function(e,t){this.type=o.Syntax.Literal,this.value=e,this.raw=t}}();t.Literal=W;var H=function(){return function(e,t){this.type=o.Syntax.MetaProperty,this.meta=e,this.property=t}}();t.MetaProperty=H;var q=function(){return function(e,t,n,r,a){this.type=o.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=n,this.kind=r,this.static=a}}();t.MethodDefinition=q;var j=function(){return function(e,t){this.type=o.Syntax.NewExpression,this.callee=e,this.arguments=t}}();t.NewExpression=j;var z=function(){return function(e){this.type=o.Syntax.ObjectExpression,this.properties=e}}();t.ObjectExpression=z;var K=function(){return function(e){this.type=o.Syntax.ObjectPattern,this.properties=e}}();t.ObjectPattern=K;var G=function(){return function(e,t){this.type=o.Syntax.Program,this.body=e,this.sourceType=t}}();t.Program=G;var X=function(){return function(e,t,n,r,a,i){this.type=o.Syntax.Property,this.key=t,this.computed=n,this.value=r,this.kind=e,this.method=a,this.shorthand=i}}();t.Property=X;var Q=function(){return function(e,t,n){this.type=o.Syntax.Literal,this.value=e,this.raw=t,this.regex=n}}();t.RegexLiteral=Q;var Y=function(){return function(e){this.type=o.Syntax.RestElement,this.argument=e}}();t.RestElement=Y;var J=function(){return function(e){this.type=o.Syntax.ReturnStatement,this.argument=e}}();t.ReturnStatement=J;var $=function(){return function(e){this.type=o.Syntax.SequenceExpression,this.expressions=e}}();t.SequenceExpression=$;var Z=function(){return function(e){this.type=o.Syntax.SpreadElement,this.argument=e}}();t.SpreadElement=Z;var ee=function(){return function(e,t){this.type=o.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t}}();t.StaticMemberExpression=ee;var te=function(){return function(){this.type=o.Syntax.Super}}();t.Super=te;var ne=function(){return function(e,t){this.type=o.Syntax.SwitchCase,this.test=e,this.consequent=t}}();t.SwitchCase=ne;var oe=function(){return function(e,t){this.type=o.Syntax.SwitchStatement,this.discriminant=e,this.cases=t}}();t.SwitchStatement=oe;var re=function(){return function(e,t){this.type=o.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t}}();t.TaggedTemplateExpression=re;var ae=function(){return function(e,t){this.type=o.Syntax.TemplateElement,this.value=e,this.tail=t}}();t.TemplateElement=ae;var ie=function(){return function(e,t){this.type=o.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t}}();t.TemplateLiteral=ie;var se=function(){return function(){this.type=o.Syntax.ThisExpression}}();t.ThisExpression=se;var de=function(){return function(e){this.type=o.Syntax.ThrowStatement,this.argument=e}}();t.ThrowStatement=de;var le=function(){return function(e,t,n){this.type=o.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=n}}();t.TryStatement=le;var pe=function(){return function(e,t){this.type=o.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0}}();t.UnaryExpression=pe;var ce=function(){return function(e,t,n){this.type=o.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=n}}();t.UpdateExpression=ce;var ue=function(){return function(e,t){this.type=o.Syntax.VariableDeclaration,this.declarations=e,this.kind=t}}();t.VariableDeclaration=ue;var he=function(){return function(e,t){this.type=o.Syntax.VariableDeclarator,this.id=e,this.init=t}}();t.VariableDeclarator=he;var me=function(){return function(e,t){this.type=o.Syntax.WhileStatement,this.test=e,this.body=t}}();t.WhileStatement=me;var ge=function(){return function(e,t){this.type=o.Syntax.WithStatement,this.object=e,this.body=t}}();t.WithStatement=ge;var fe=function(){return function(e,t){this.type=o.Syntax.YieldExpression,this.argument=e,this.delegate=t}}();t.YieldExpression=fe},function(t,n,o){'use strict';function r(e){var t;switch(e.type){case p.JSXSyntax.JSXIdentifier:t=e.name;break;case p.JSXSyntax.JSXNamespacedName:var n=e;t=r(n.namespace)+':'+r(n.name);break;case p.JSXSyntax.JSXMemberExpression:var o=e;t=r(o.object)+'.'+r(o.property);}return t}var a=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},i=o(9),s=o(7),d=o(3),l=o(12),p=o(13),c=o(10),u=o(14),h;(function(e){e[e.Identifier=100]='Identifier',e[e.Text=101]='Text'})(h||(h={})),s.TokenName[h.Identifier]='JSXIdentifier',s.TokenName[h.Text]='JSXText';var m=function(t){function n(e,n,o){t.call(this,e,n,o)}return a(n,t),n.prototype.parsePrimaryExpression=function(){return this.match('<')?this.parseJSXRoot():t.prototype.parsePrimaryExpression.call(this)},n.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.lineNumber,this.scanner.lineStart=this.startMarker.lineStart},n.prototype.finishJSX=function(){this.nextToken()},n.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},n.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},n.prototype.scanXHTMLEntity=function(){for(var t='&',n='',o;!this.scanner.eof();){if(o=this.scanner.source[this.scanner.index++],';'===o){if('#'===n[0]){n=n.substr(1);var r='x'===n[0],a=r?parseInt('0'+n,16):parseInt(n,10);t=e(a)}else l.XHTMLEntities[n]?t=l.XHTMLEntities[n]:t+=o;break}n+=o,t+=o}return t},n.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e){var t=this.scanner.source[this.scanner.index++];return{type:s.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(34===e||39===e){for(var n=this.scanner.index,o=this.scanner.source[this.scanner.index++],r='',a;!this.scanner.eof()&&(a=this.scanner.source[this.scanner.index++],a!==o);)r+='&'===a?this.scanXHTMLEntity():a;return{type:s.Token.StringLiteral,value:r,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(46===e){var d=this.scanner.source.charCodeAt(this.scanner.index+1),l=this.scanner.source.charCodeAt(this.scanner.index+2),t=46===d&&46===l?'...':'.',n=this.scanner.index;return this.scanner.index+=t.length,{type:s.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(i.Character.isIdentifierStart(e)&&92!==e){var n=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var a=this.scanner.source.charCodeAt(this.scanner.index);if(i.Character.isIdentifierPart(a)&&92!==a)++this.scanner.index;else if(45===a)++this.scanner.index;else break}var p=this.scanner.source.slice(n,this.scanner.index);return{type:h.Identifier,value:p,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}this.scanner.throwUnexpectedToken()},n.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},n.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;for(var e=this.scanner.index,t='',n;!this.scanner.eof()&&(n=this.scanner.source[this.scanner.index],'{'!==n&&'<'!==n);)++this.scanner.index,t+=n,i.Character.isLineTerminator(n.charCodeAt(0))&&(++this.scanner.lineNumber,'\r'===n&&'\n'===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index);this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart;var o={type:h.Text,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return 0');)t=this.matchJSX('{')?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute(),e.push(t);return e},n.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX('<');var t=this.parseJSXElementName(),n=this.parseJSXAttributes(),o=this.matchJSX('/');return o&&this.expectJSX('/'),this.expectJSX('>'),this.finalize(e,new u.JSXOpeningElement(t,o,n))},n.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX('<'),this.matchJSX('/')){this.expectJSX('/');var t=this.parseJSXElementName();return this.expectJSX('>'),this.finalize(e,new u.JSXClosingElement(t))}var n=this.parseJSXElementName(),o=this.parseJSXAttributes(),r=this.matchJSX('/');return r&&this.expectJSX('/'),this.expectJSX('>'),this.finalize(e,new u.JSXOpeningElement(n,r,o))},n.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.finalize(e,new u.JSXEmptyExpression)},n.prototype.parseJSXExpression=function(){var e;return this.matchJSX('}')?e=this.parseJSXEmptyExpression():(this.finishJSX(),e=this.parseAssignmentExpression(),this.startJSX()),e},n.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX('{');var t=this.parseJSXExpression();return this.expectJSX('}'),this.finalize(e,new u.JSXExpressionContainer(t))},n.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),n=this.nextJSXText();if(n.start',nbsp:'\xA0',iexcl:'\xA1',cent:'\xA2',pound:'\xA3',curren:'\xA4',yen:'\xA5',brvbar:'\xA6',sect:'\xA7',uml:'\xA8',copy:'\xA9',ordf:'\xAA',laquo:'\xAB',not:'\xAC',shy:'\xAD',reg:'\xAE',macr:'\xAF',deg:'\xB0',plusmn:'\xB1',sup2:'\xB2',sup3:'\xB3',acute:'\xB4',micro:'\xB5',para:'\xB6',middot:'\xB7',cedil:'\xB8',sup1:'\xB9',ordm:'\xBA',raquo:'\xBB',frac14:'\xBC',frac12:'\xBD',frac34:'\xBE',iquest:'\xBF',Agrave:'\xC0',Aacute:'\xC1',Acirc:'\xC2',Atilde:'\xC3',Auml:'\xC4',Aring:'\xC5',AElig:'\xC6',Ccedil:'\xC7',Egrave:'\xC8',Eacute:'\xC9',Ecirc:'\xCA',Euml:'\xCB',Igrave:'\xCC',Iacute:'\xCD',Icirc:'\xCE',Iuml:'\xCF',ETH:'\xD0',Ntilde:'\xD1',Ograve:'\xD2',Oacute:'\xD3',Ocirc:'\xD4',Otilde:'\xD5',Ouml:'\xD6',times:'\xD7',Oslash:'\xD8',Ugrave:'\xD9',Uacute:'\xDA',Ucirc:'\xDB',Uuml:'\xDC',Yacute:'\xDD',THORN:'\xDE',szlig:'\xDF',agrave:'\xE0',aacute:'\xE1',acirc:'\xE2',atilde:'\xE3',auml:'\xE4',aring:'\xE5',aelig:'\xE6',ccedil:'\xE7',egrave:'\xE8',eacute:'\xE9',ecirc:'\xEA',euml:'\xEB',igrave:'\xEC',iacute:'\xED',icirc:'\xEE',iuml:'\xEF',eth:'\xF0',ntilde:'\xF1',ograve:'\xF2',oacute:'\xF3',ocirc:'\xF4',otilde:'\xF5',ouml:'\xF6',divide:'\xF7',oslash:'\xF8',ugrave:'\xF9',uacute:'\xFA',ucirc:'\xFB',uuml:'\xFC',yacute:'\xFD',thorn:'\xFE',yuml:'\xFF',OElig:'\u0152',oelig:'\u0153',Scaron:'\u0160',scaron:'\u0161',Yuml:'\u0178',fnof:'\u0192',circ:'\u02C6',tilde:'\u02DC',Alpha:'\u0391',Beta:'\u0392',Gamma:'\u0393',Delta:'\u0394',Epsilon:'\u0395',Zeta:'\u0396',Eta:'\u0397',Theta:'\u0398',Iota:'\u0399',Kappa:'\u039A',Lambda:'\u039B',Mu:'\u039C',Nu:'\u039D',Xi:'\u039E',Omicron:'\u039F',Pi:'\u03A0',Rho:'\u03A1',Sigma:'\u03A3',Tau:'\u03A4',Upsilon:'\u03A5',Phi:'\u03A6',Chi:'\u03A7',Psi:'\u03A8',Omega:'\u03A9',alpha:'\u03B1',beta:'\u03B2',gamma:'\u03B3',delta:'\u03B4',epsilon:'\u03B5',zeta:'\u03B6',eta:'\u03B7',theta:'\u03B8',iota:'\u03B9',kappa:'\u03BA',lambda:'\u03BB',mu:'\u03BC',nu:'\u03BD',xi:'\u03BE',omicron:'\u03BF',pi:'\u03C0',rho:'\u03C1',sigmaf:'\u03C2',sigma:'\u03C3',tau:'\u03C4',upsilon:'\u03C5',phi:'\u03C6',chi:'\u03C7',psi:'\u03C8',omega:'\u03C9',thetasym:'\u03D1',upsih:'\u03D2',piv:'\u03D6',ensp:'\u2002',emsp:'\u2003',thinsp:'\u2009',zwnj:'\u200C',zwj:'\u200D',lrm:'\u200E',rlm:'\u200F',ndash:'\u2013',mdash:'\u2014',lsquo:'\u2018',rsquo:'\u2019',sbquo:'\u201A',ldquo:'\u201C',rdquo:'\u201D',bdquo:'\u201E',dagger:'\u2020',Dagger:'\u2021',bull:'\u2022',hellip:'\u2026',permil:'\u2030',prime:'\u2032',Prime:'\u2033',lsaquo:'\u2039',rsaquo:'\u203A',oline:'\u203E',frasl:'\u2044',euro:'\u20AC',image:'\u2111',weierp:'\u2118',real:'\u211C',trade:'\u2122',alefsym:'\u2135',larr:'\u2190',uarr:'\u2191',rarr:'\u2192',darr:'\u2193',harr:'\u2194',crarr:'\u21B5',lArr:'\u21D0',uArr:'\u21D1',rArr:'\u21D2',dArr:'\u21D3',hArr:'\u21D4',forall:'\u2200',part:'\u2202',exist:'\u2203',empty:'\u2205',nabla:'\u2207',isin:'\u2208',notin:'\u2209',ni:'\u220B',prod:'\u220F',sum:'\u2211',minus:'\u2212',lowast:'\u2217',radic:'\u221A',prop:'\u221D',infin:'\u221E',ang:'\u2220',and:'\u2227',or:'\u2228',cap:'\u2229',cup:'\u222A',int:'\u222B',there4:'\u2234',sim:'\u223C',cong:'\u2245',asymp:'\u2248',ne:'\u2260',equiv:'\u2261',le:'\u2264',ge:'\u2265',sub:'\u2282',sup:'\u2283',nsub:'\u2284',sube:'\u2286',supe:'\u2287',oplus:'\u2295',otimes:'\u2297',perp:'\u22A5',sdot:'\u22C5',lceil:'\u2308',rceil:'\u2309',lfloor:'\u230A',rfloor:'\u230B',loz:'\u25CA',spades:'\u2660',clubs:'\u2663',hearts:'\u2665',diams:'\u2666',lang:'\u27E8',rang:'\u27E9'}},function(e,t){'use strict';t.JSXSyntax={JSXAttribute:'JSXAttribute',JSXClosingElement:'JSXClosingElement',JSXElement:'JSXElement',JSXEmptyExpression:'JSXEmptyExpression',JSXExpressionContainer:'JSXExpressionContainer',JSXIdentifier:'JSXIdentifier',JSXMemberExpression:'JSXMemberExpression',JSXNamespacedName:'JSXNamespacedName',JSXOpeningElement:'JSXOpeningElement',JSXSpreadAttribute:'JSXSpreadAttribute',JSXText:'JSXText'}},function(e,t,n){'use strict';var o=n(13),r=function(){return function(e){this.type=o.JSXSyntax.JSXClosingElement,this.name=e}}();t.JSXClosingElement=r;var a=function(){return function(e,t,n){this.type=o.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=n}}();t.JSXElement=a;var i=function(){return function(){this.type=o.JSXSyntax.JSXEmptyExpression}}();t.JSXEmptyExpression=i;var s=function(){return function(e){this.type=o.JSXSyntax.JSXExpressionContainer,this.expression=e}}();t.JSXExpressionContainer=s;var d=function(){return function(e){this.type=o.JSXSyntax.JSXIdentifier,this.name=e}}();t.JSXIdentifier=d;var l=function(){return function(e,t){this.type=o.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t}}();t.JSXMemberExpression=l;var p=function(){return function(e,t){this.type=o.JSXSyntax.JSXAttribute,this.name=e,this.value=t}}();t.JSXAttribute=p;var c=function(){return function(e,t){this.type=o.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t}}();t.JSXNamespacedName=c;var u=function(){return function(e,t,n){this.type=o.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=n}}();t.JSXOpeningElement=u;var h=function(){return function(e){this.type=o.JSXSyntax.JSXSpreadAttribute,this.argument=e}}();t.JSXSpreadAttribute=h;var m=function(){return function(e,t){this.type=o.JSXSyntax.JSXText,this.value=e,this.raw=t}}();t.JSXText=m},function(e,t,n){'use strict';var o=n(8),r=n(6),a=n(7),i=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return 0<=['(','{','[','in','typeof','instanceof','new','return','case','delete','throw','void','=','+=','-=','*=','**=','/=','%=','<<=','>>=','>>>=','&=','|=','^=',',','+','-','*','**','/','%','++','--','<<','>>','>>>','&','|','^','!','~','&&','||','?',':','===','==','>=','<=','<','>','!=','!=='].indexOf(e)},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case'this':case']':t=!1;break;case')':var n=this.values[this.paren-1];t='if'===n||'while'===n||'for'===n||'with'===n;break;case'}':if(t=!1,'function'===this.values[this.curly-3]){var o=this.values[this.curly-4];t=!!o&&!this.beforeFunctionExpression(o)}else if('function'===this.values[this.curly-4]){var r=this.values[this.curly-5];t=!r||!this.beforeFunctionExpression(r)}}return t},(e.prototype.push=function(e){e.type===a.Token.Punctuator||e.type===a.Token.Keyword?('{'===e.value?this.curly=this.values.length:'('===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e)}(),s=function(){function e(e,t){this.errorHandler=new r.ErrorHandler,this.errorHandler.tolerant=!!t&&'boolean'==typeof t.tolerant&&t.tolerant,this.scanner=new o.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&'boolean'==typeof t.comment&&t.comment,this.trackRange=!!t&&'boolean'==typeof t.range&&t.range,this.trackLoc=!!t&&'boolean'==typeof t.loc&&t.loc,this.buffer=[],this.reader=new i}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var t=this.scanner.scanComments();if(this.scanner.trackComment)for(var n=0;nn?e[t++]=n:2048>n?(e[t++]=192|n>>6,e[t++]=128|63&n):55296==(64512&n)&&r+1>18,e[t++]=128|63&n>>12,e[t++]=128|63&n>>6,e[t++]=128|63&n):(e[t++]=224|n>>12,e[t++]=128|63&n>>6,e[t++]=128|63&n);return e},n=function(l){for(var e=[],t=0,r=0,n;tn)e[r++]=d(n);else if(191n){var o=l[t++];e[r++]=d((31&n)<<6|63&o)}else if(239n){var o=l[t++],i=l[t++],a=l[t++],p=((7&n)<<18|(63&o)<<12|(63&i)<<6|63&a)-65536;e[r++]=d(55296+(p>>10)),e[r++]=d(56320+(1023&p))}else{var o=l[t++],i=l[t++];e[r++]=d((15&n)<<12|(63&o)<<6|63&i)}return e.join('')};a.base64={y:null,b:null,_:null,g:null,ENCODED_VALS_BASE:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',get ENCODED_VALS(){return this.ENCODED_VALS_BASE+'+/='},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+'-_.'},HAS_NATIVE_SUPPORT:'function'==typeof atob,encodeByteArray:function(d,e){if(!Array.isArray(d))throw Error('encodeByteArray takes an array as a parameter');this.O();for(var t=e?this._:this.y,r=[],n=0;n>6,l=63&s;c||(l=64,i||(u=64)),r.push(t[o>>2],t[(3&o)<<4|a>>4],t[u],t[l])}return r.join('')},encodeString:function(n,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(n):this.encodeByteArray(i(n),e)},decodeString:function(o,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(o):n(this.decodeStringToByteArray(o,e))},decodeStringToByteArray:function(d,e){this.O();for(var t=e?this.g:this.b,r=[],n=0;n>4),64!=s){if(r.push(240&a<<4|s>>2),64!=c){r.push(192&s<<6|c)}}}return r},O:function(){if(!this.y){this.y={},this.b={},this._={},this.g={};for(var t=0;t=this.ENCODED_VALS_BASE.length&&(this.b[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.g[this.ENCODED_VALS.charAt(t)]=t)}}},a.base64Encode=function(t){var e=i(t);return a.base64.encodeByteArray(e,!0)},a.base64Decode=function(t){try{return a.base64.decodeString(t,!0)}catch(t){console.error('base64Decode failed: ',t)}return null}},function(n,e){'use strict';Object.defineProperty(e,'__esModule',{value:!0}),e.jsonEval=function(t){return JSON.parse(t)},e.stringify=function(t){return JSON.stringify(t)}},function(n,a){'use strict';Object.defineProperty(a,'__esModule',{value:!0}),a.contains=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},a.safeGet=function(n,e){if(Object.prototype.hasOwnProperty.call(n,e))return n[e]},a.forEach=function(n,e){for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&e(t,n[t])},a.extend=function(n,e){return a.forEach(e,function(e,t){n[e]=t}),n},a.clone=function(t){return a.extend({},t)},a.isNonNullObject=function(t){return'object'==typeof t&&null!==t},a.isEmpty=function(n){for(var e in n)return!1;return!0},a.getCount=function(n){var e=0;for(var t in n)e++;return e},a.map=function(a,e,t){var r={};for(var n in a)r[n]=e.call(t,a[n],n,a);return r},a.findKey=function(o,e,t){for(var r in o)if(e.call(t,o[r],r,o))return r},a.findValue=function(t,e,r){var n=a.findKey(t,e,r);return n&&t[n]},a.getAnyKey=function(n){for(var e in n)return e},a.getValues=function(o){var e=[],t=0;for(var r in o)e[t++]=o[r];return e},a.every=function(n,e){for(var t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&!e(t,n[t]))return!1;return!0}},,,,,,,,,,,,,,,,,,,,,,,,,,function(n,e,t){t(58),n.exports=t(6).default},function(a,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var r=t(59),n=(t.n(r),t(63)),o=(t.n(n),t(64));t.n(o)},function(e,t,o){(function(e){var t=function(){if(void 0!==e)return e;if(void 0!==a)return a;if('undefined'!=typeof self)return self;throw Error('unable to locate global object')}();'undefined'==typeof Promise&&(t.Promise=Promise=o(60))}).call(t,o(12))},function(d,e,t){(function(p){!function(e){function m(){}function n(n,e){return function(){n.apply(e,arguments)}}function o(t){if('object'!=typeof this)throw new TypeError('Promises must be constructed via new');if('function'!=typeof t)throw new TypeError('not a function');this._state=0,this._handled=!1,this._value=void 0,this.T=[],g(t,this)}function i(i,s){for(;3===i._state;)i=i._value;return 0===i._state?void i.T.push(s):void(i._handled=!0,o.A(function(){var e=1===i._state?s.onFulfilled:s.onRejected;if(null===e)return void(1===i._state?a:c)(s.promise,i._value);var t;try{t=e(i._value)}catch(t){return void c(s.promise,t)}a(s.promise,t)}))}function a(a,e){try{if(e===a)throw new TypeError('A promise cannot be resolved with itself.');if(e&&('object'==typeof e||'function'==typeof e)){var i=e.then;if(e instanceof o)return a._state=3,a._value=e,void s(a);if('function'==typeof i)return void g(n(i,e),a)}a._state=1,a._value=e,s(a)}catch(e){c(a,e)}}function c(n,e){n._state=2,n._value=e,s(n)}function s(n){2===n._state&&0===n.T.length&&o.A(function(){n._handled||o.j(n._value)});for(var e=0,t=n.T.length;e>>0;if('function'!=typeof a)throw new TypeError('predicate must be a function');for(var r=arguments[1],n=0,o;n>>0;if('function'!=typeof a)throw new TypeError('predicate must be a function');for(var r=arguments[1],n=0,o;n':''+o}),n=this.serviceName+': '+n+' ('+t+').';var o=new s(t,n);for(var r in d)d.hasOwnProperty(r)&&'_'!==r.slice(-1)&&(o[r]=d[r]);return o},t}();e.ErrorFactory=a},function(a,s,e){'use strict';Object.defineProperty(s,'__esModule',{value:!0});var d=e(29),n=e(30);s.decode=function(o){var e={},s={},l={},p='';try{var u=o.split('.');e=n.jsonEval(d.base64Decode(u[0])||''),s=n.jsonEval(d.base64Decode(u[1])||''),p=u[2],l=s.d||{},delete s.d}catch(t){}return{header:e,claims:s,data:l,signature:p}},s.isValidTimestamp=function(t){var e=s.decode(t).claims,a=Math.floor(new Date().getTime()/1e3),i,r;return'object'==typeof e&&(e.hasOwnProperty('nbf')?i=e.nbf:e.hasOwnProperty('iat')&&(i=e.iat),r=e.hasOwnProperty('exp')?e.exp:i+86400),a&&i&&r&&a>=i&&a<=r},s.issuedAtTime=function(t){var e=s.decode(t).claims;return'object'==typeof e&&e.hasOwnProperty('iat')?e.iat:null},s.isValidFormat=function(t){var e=s.decode(t),o=e.claims;return!!e.signature&&!!o&&'object'==typeof o&&o.hasOwnProperty('iat')},s.isAdmin=function(t){var e=s.decode(t).claims;return'object'==typeof e&&!0===e.admin}},function(o,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var r=t(31);e.querystring=function(n){var o=[];return r.forEach(n,function(t,e){Array.isArray(e)?e.forEach(function(e){o.push(encodeURIComponent(t)+'='+encodeURIComponent(e))}):o.push(encodeURIComponent(t)+'='+encodeURIComponent(e))}),o.length?'&'+o.join('&'):''},e.querystringDecode=function(n){var o={};return n.replace(/^\?/,'').split('&').forEach(function(t){if(t){var e=t.split('=');o[e[0]]=e[1]}}),o}},function(a,e,t){'use strict';var r=this&&this.__extends||function(){var o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,e){n.__proto__=e}||function(n,e){for(var t in e)e.hasOwnProperty(t)&&(n[t]=e[t])};return function(e,t){function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}}();Object.defineProperty(e,'__esModule',{value:!0});var n=t(72),o=function(n){function e(){var e=n.call(this)||this;e.D=[],e.I=[],e.x=[],e.F=[],e.L=0,e.R=0,e.blockSize=64,e.F[0]=128;for(var o=1;or;r++)t[r]=d.charCodeAt(l)<<24|d.charCodeAt(l+1)<<16|d.charCodeAt(l+2)<<8|d.charCodeAt(l+3),l+=4;else for(var r=0;16>r;r++)t[r]=d[l]<<24|d[l+1]<<16|d[l+2]<<8|d[l+3],l+=4;for(var r=16,n;80>r;r++)n=t[r-3]^t[r-8]^t[r-14]^t[r-16],t[r]=4294967295&(n<<1|n>>>31);for(var o=this.D[0],p=this.D[1],s=this.D[2],c=this.D[3],u=this.D[4],r=0,h,i;80>r;r++){40>r?20>r?(h=c^p&(s^c),i=1518500249):(h=p^s^c,i=1859775393):60>r?(h=p&s|c&(p|s),i=2400959708):(h=p^s^c,i=3395469782);var n=4294967295&(o<<5|o>>>27)+h+u+i+t[r];u=c,c=s,s=4294967295&(p<<30|p>>>2),p=o,o=n}this.D[0]=4294967295&this.D[0]+o,this.D[1]=4294967295&this.D[1]+p,this.D[2]=4294967295&this.D[2]+s,this.D[3]=4294967295&this.D[3]+c,this.D[4]=4294967295&this.D[4]+u},e.prototype.update=function(a,s){if(null!=a){void 0===s&&(s=a.length);for(var t=s-this.blockSize,r=0,n=this.I,o=this.L;rthis.L?this.update(this.F,56-this.L):this.update(this.F,this.blockSize-(this.L-56));for(var t=this.blockSize-1;56<=t;t--)this.I[t]=255&e,e/=256;this.B(this.I);for(var r=0,t=0;5>t;t++)for(var n=24;0<=n;n-=8)a[r]=255&this.D[t]>>n,++r;return a},e}(n.Hash);e.Sha1=o},function(o,e){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var t=function(){return function(){this.blockSize=-1}}();e.Hash=t},function(n,e){'use strict';function s(a,i){if('object'!=typeof a||null===a)return!1;for(var t=0,r=i,n;t 4. Need to update it?');}var i=a+' failed: ';return i+=r+' argument '}function t(n,e,t,i){if((!i||t)&&'string'!=typeof t)throw Error(a(n,e,i)+'must be a valid firebase namespace.')}Object.defineProperty(e,'__esModule',{value:!0}),e.validateArgCount=function(a,e,t,r){var n;if(rt&&(n=0===t?'none':'no more than '+t),n){var o=a+' failed: Was called with '+r+(1===r?' argument.':' arguments.')+' Expects '+n+'.';throw Error(o)}},e.errorPrefix=a,e.validateNamespace=t,e.validateCallback=function(n,e,t,i){if((!i||t)&&'function'!=typeof t)throw Error(a(n,e,i)+'must be a valid function.')},e.validateContextObject=function(n,e,t,i){if((!i||t)&&('object'!=typeof t||null===t))throw Error(a(n,e,i)+'must be a valid context object.')}},function(o,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var r=t(28);e.stringToByteArray=function(n){for(var e=[],t=0,s=0,o;s=o){var i=o-55296;s++,r.assert(so?e[t++]=o:2048>o?(e[t++]=192|o>>6,e[t++]=128|63&o):65536>o?(e[t++]=224|o>>12,e[t++]=128|63&o>>6,e[t++]=128|63&o):(e[t++]=240|o>>18,e[t++]=128|63&o>>12,e[t++]=128|63&o>>6,e[t++]=128|63&o)}return e},e.stringLength=function(o){for(var e=0,t=0,r;tr?e++:2048>r?e+=2:55296<=r&&56319>=r?(e+=4,t++):e+=3;return e}}])}().default;try{webpackJsonpFirebase([4],{76:function(o,t,n){n(77)},77:function(o,t,Kn){var d=Math.max,ed=Math.floor;(function(e){(function(){function td(e){return'string'==typeof e}function e(e){return'boolean'==typeof e}function nd(){}function i(o){var r=typeof o;if('object'==r){if(!o)return'null';if(o instanceof Array)return'array';if(o instanceof Object)return r;var n=Object.prototype.toString.call(o);if('[object Window]'==n)return'object';if('[object Array]'==n||'number'==typeof o.length&&void 0!==o.splice&&void 0!==o.propertyIsEnumerable&&!o.propertyIsEnumerable('splice'))return'array';if('[object Function]'==n||void 0!==o.call&&void 0!==o.propertyIsEnumerable&&!o.propertyIsEnumerable('call'))return'function'}else if('function'==r&&void 0===o.call)return'object';return r}function r(e){return null===e}function od(e){return'array'==i(e)}function rd(e){var t=i(e);return'array'==t||'object'==t&&'number'==typeof e.length}function a(e){return'function'==i(e)}function ad(e){var o=typeof e;return'object'==o&&null!=e||'function'==o}function s(e){return e.call.apply(e.bind,arguments)}function h(o,r){if(!o)throw Error();if(2')&&(e=e.replace(Bd,'>')),-1!=e.indexOf('"')&&(e=e.replace(Ud,'"')),-1!=e.indexOf('\'')&&(e=e.replace(Vd,''')),-1!=e.indexOf('\0')&&(e=e.replace(Wd,'�')),e):e}function g(e,t){return-1!=e.indexOf(t)}function b(e,t){return et?1:0}function w(e,t){t.unshift(e),p.call(this,v.apply(null,t)),t.shift()}function y(e){throw new w('Failure'+(e?': '+e:''),Array.prototype.slice.call(arguments,1))}function I(t,n){var e=t.length,o=td(t)?t.split(''):t;for(--e;0<=e;--e)e in o&&n.call(void 0,o[e],e,t)}function T(t){t:{for(var n=Te,e=t.length,a=td(t)?t.split(''):t,r=0;rn?null:td(t)?t.charAt(n):t[n]}function A(e,t){return 0<=qd(e,t)}function k(o,t){t=qd(o,t);var n;return(n=0<=t)&&Array.prototype.splice.call(o,t,1),n}function E(o,t){var n=0;I(o,function(e,a){t.call(void 0,e,a,o)&&1==Array.prototype.splice.call(o,a,1).length&&n++})}function N(){return Array.prototype.concat.apply([],arguments)}function S(o){var t=o.length;if(0'),n=n.join('')}return n=t.createElement(n),o&&(td(o)?n.className=o:od(o)?n.className=o.join(' '):Dt(n,o)),2e.keyCode||void 0!=e.returnValue)){t:{var i=!1;if(0==e.keyCode)try{e.keyCode=-1;break t}catch(e){i=!0}(i||void 0==e.returnValue)&&(e.returnValue=!0)}for(e=[],i=t.b;i;i=i.parentNode)e.push(i);for(a=a.type,i=e.length-1;0<=i;i--){t.b=e[i];var r=on(e[i],a,!0,t);s=s&&r}for(i=0;i>4),64!=o&&(t(240&r<<4|o>>2),64!=a&&t(192&o<<6|a))}}function Pn(){if(!Yl){Yl={},Jl={};for(var e=0;65>e;e++)Yl[e]='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='.charAt(e),Jl[Yl[e]]=e,62<=e&&(Jl['ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.'.charAt(e)]=e)}}function Cn(e,t){this.g=[],this.v=e,this.o=t||null,this.f=this.a=!1,this.c=void 0,this.u=this.w=this.i=!1,this.h=0,this.b=null,this.l=0}function Rn(o,t,r){o.a=!0,o.c=r,o.f=!t,Un(o)}function _n(e){if(e.a){if(!e.u)throw new jn;e.u=!1}}function Dn(e,t){Ln(e,null,t,void 0)}function Ln(o,t,n,e){o.g.push([t,n,e]),o.a&&Un(o)}function xn(e){return Kd(e.g,function(e){return a(e[1])})}function Un(d){if(d.h&&d.a&&xn(d)){var t=d.h,n=$l[t];n&&(Ld.clearTimeout(n.a),delete $l[t]),d.h=0}d.b&&(d.b.l--,delete d.b),t=d.c;for(var e=n=!1;d.g.length&&!d.i;){var i=d.g.shift(),r=i[0],o=i[1];if(i=i[2],r=d.f?o:r)try{var a=r.call(i||d.o,t);void 0!==a&&(d.f=d.f&&(a==t||a instanceof Error),d.c=t=a),(K(t)||'function'==typeof Ld.Promise&&t instanceof Ld.Promise)&&(e=!0,d.i=!0)}catch(e){t=e,d.f=!0,xn(d)||(n=!0)}}d.c=t,e&&(a=f(d.m,d,!0),e=f(d.m,d,!1),t instanceof Cn?(Ln(t,a,e),t.w=!0):t.then(a,e)),n&&(t=new Vn(t),$l[t.a]=t,d.h=t.a)}function jn(){p.call(this)}function Mn(){p.call(this)}function Vn(e){this.a=Ld.setTimeout(f(this.c,this),0),this.b=e}function Fn(e,t){this.b=-1,this.b=ep,this.f=Ld.Uint8Array?new Uint8Array(this.b):Array(this.b),this.g=this.c=0,this.a=[],this.i=e,this.h=t,this.l=Ld.Int32Array?new Int32Array(64):Array(64),Zl||(Zl=Ld.Int32Array?new Int32Array(rp):rp),this.reset()}function qn(d){for(var t=d.f,n=d.l,e=0,i=0;it;t++){i=0|n[t-15],e=0|n[t-2];var r=0|(0|n[t-16])+((i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3),o=0|(0|n[t-7])+((e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10);n[t]=0|r+o}e=0|d.a[0],i=0|d.a[1];var a=0|d.a[2],s=0|d.a[3],p=0|d.a[4],u=0|d.a[5],h=0|d.a[6];for(r=0|d.a[7],t=0;64>t;t++){var m=0|((e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10))+(e&i^e&a^i&a);o=p&u^~p&h,r=0|r+((p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7)),o=0|o+(0|Zl[t]),o=0|r+(0|o+(0|n[t])),r=h,h=u,u=p,p=0|s+o,s=a,a=i,i=e,e=0|o+m}d.a[0]=0|d.a[0]+e,d.a[1]=0|d.a[1]+i,d.a[2]=0|d.a[2]+a,d.a[3]=0|d.a[3]+s,d.a[4]=0|d.a[4]+p,d.a[5]=0|d.a[5]+u,d.a[6]=0|d.a[6]+h,d.a[7]=0|d.a[7]+r}function Xn(t,n,e){void 0===e&&(e=n.length);var i=0,r=t.c;if(td(n))for(;i=o&&o==(0|o)))throw Error('message must be a byte array');t.f[r++]=o,r==t.b&&(qn(t),r=0)}}t.c=r,t.g+=e}function Bn(){Fn.call(this,8,ap)}function Hn(t){if(t.P&&'function'==typeof t.P)return t.P();if(td(t))return t.split('');if(rd(t)){for(var n=[],e=t.length,o=0;ot)throw Error('Bad port number '+t);e.i=t}else e.i=null}function Zn(o,t,n){t instanceof ae?(o.a=t,pe(o.a,o.f)):(n||(t=re(t,pp)),o.a=new ae(t,0,o.f))}function Qn(o,t,n){o.a.set(t,n)}function te(e,t){return e.a.get(t)}function ne(e){return e instanceof Jn?new Jn(e):new Jn(e,void 0)}function ee(o,t){var n=new Jn(null,void 0);return Yn(n,'https'),o&&(n.b=o),t&&(n.g=t),n}function ie(e,t){return e?t?decodeURI(e.replace(/%25/g,'%2525')):decodeURIComponent(e):''}function re(t,n,e){return td(t)?(t=encodeURI(t).replace(n,oe),e&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,'%$1')),t):null}function oe(e){return e=e.charCodeAt(0),'%'+(15&e>>4).toString(16)+(15&e).toString(16)}function ae(o,t,n){this.b=this.a=null,this.c=o||null,this.f=!!n}function se(o){o.a||(o.a=new Tn,o.b=0,o.c&&zn(o.c,function(t,n){ce(o,decodeURIComponent(t.replace(/\+/g,' ')),n)}))}function ue(a){var t=Wn(a);if(void 0===t)throw Error('Keys are undefined');var n=new ae(null,0,void 0);a=Hn(a);for(var e=0;e2*e.c&&An(e)))}function fe(e,t){return se(e),t=de(e,t),kn(e.a.b,t)}function le(o,t,n){he(o,t),0n;n++){e=t[n];try{return new ActiveXObject(e),o.f=e}catch(e){}}throw Error('Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed')}return o.f}function we(e){hn.call(this),this.headers=new Tn,this.w=e||null,this.b=!1,this.v=this.a=null,this.g=this.I=this.i='',this.c=this.G=this.h=this.A=!1,this.f=0,this.m=null,this.l=hp,this.o=this.N=!1}function ye(a,t,n,e,i){if(a.a)throw Error('[goog.net.XhrIo] Object is active with another request='+a.i+'; newUri='+t);n=n?n.toUpperCase():'GET',a.i=t,a.g='',a.I=n,a.A=!1,a.b=!0,a.a=a.w?a.w.a():up.a(),a.v=me(a.w?a.w:up),a.a.onreadystatechange=f(a.Ab,a);try{En(a.J,Re(a,'Opening Xhr')),a.G=!0,a.a.open(n,t+'',!0),a.G=!1}catch(e){return En(a.J,Re(a,'Error opening Xhr: '+e.message)),void Ae(a,e)}t=e||'';var r=new Tn(a.headers);i&&Gn(i,function(e,t){r.set(t,e)}),i=T(r.S()),e=Ld.FormData&&t instanceof Ld.FormData,!A(yp,n)||i||e||r.set('Content-Type','application/x-www-form-urlencoded;charset=utf-8'),r.forEach(function(e,t){this.a.setRequestHeader(t,e)},a),a.l&&(a.a.responseType=a.l),'withCredentials'in a.a&&a.a.withCredentials!==a.N&&(a.a.withCredentials=a.N);try{Se(a),0e||$d&&ll&&!(9',s=Rt(s),o.document.write(Ct(s)),o.document.close())):o=s.open(Nt(t),d,o),o)try{o.focus()}catch(e){}return o}function ze(o){return new $(function(t){function n(){mn(2e3).then(function(){return o&&!o.closed?n():void t()})}return n()})}function Je(){var e=null;return new $(function(t){'complete'==Ld.document.readyState?t():(e=function(){t()},tn(window,'load',e))}).s(function(t){throw nn(window,'load',e),t})}function Ye(){return $e(void 0)?Je().then(function(){return new $(function(o,t){var n=Ld.document,e=setTimeout(function(){t(Error('Cordova framework is not ready.'))},1e3);n.addEventListener('deviceready',function(){clearTimeout(e),o()},!1)})}):nt(Error('Cordova must run in an Android or iOS file scheme.'))}function $e(e){return e=e||ii(),'file:'===ui()&&e.toLowerCase().match(/iphone|ipad|ipod|android/)}function Ze(){var e=Ld.window;try{return e&&e!=e.top}catch(e){return!1}}function Qe(){return Nd.INTERNAL.hasOwnProperty('reactNative')?'ReactNative':Nd.INTERNAL.hasOwnProperty('node')?'Node':'Browser'}function ti(){var e=Qe();return'ReactNative'===e||'Node'===e}function ni(e){var t=e.toLowerCase();return g(t,'opera/')||g(t,'opr/')||g(t,'opios/')?'Opera':g(t,'iemobile')?'IEMobile':g(t,'msie')||g(t,'trident/')?'IE':g(t,'edge/')?'Edge':g(t,'firefox/')?Sp:g(t,'silk/')?'Silk':g(t,'blackberry')?'Blackberry':g(t,'webos')?'Webos':!g(t,'safari/')||g(t,'chrome/')||g(t,'crios/')||g(t,'android')?(g(t,'chrome/')||g(t,'crios/'))&&!g(t,'edge/')?Ep:g(t,'android')?'Android':(e=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))&&2==e.length?e[1]:'Other':'Safari'}function ei(o,t){t=t||[];var n=[],a={},r;for(r in kp)a[kp[r]]=!0;for(r=0;rt)throw Error('Short delay should be less than long delay!');this.c=o,this.b=t,o=n||ii(),e=e||Qe(),this.a=He(o)||'ReactNative'===e}function bi(){var e=Ld.document;return!e||void 0===e.visibilityState||'visible'==e.visibilityState}function wi(){var o=Ld.document,r=null;return bi()||!o?tt():new $(function(t){r=function(){bi()&&(o.removeEventListener('visibilitychange',r,!1),t())},o.addEventListener('visibilitychange',r,!1)}).s(function(t){throw o.removeEventListener('visibilitychange',r,!1),t})}function yi(e){try{var t=new Date(parseInt(e,10));if(!isNaN(t.getTime())&&!/[^0-9]/.test(e))return t.toUTCString()}catch(e){}return null}function Ii(o,t,n){wp?Object.defineProperty(o,t,{configurable:!0,enumerable:!0,value:n}):o[t]=n}function Ti(o,t){if(t)for(var n in t)t.hasOwnProperty(n)&&Ii(o,n,t[n])}function Ai(e){var t={};return Ti(t,e),t}function ki(o){var t={},e;for(e in o)o.hasOwnProperty(e)&&(t[e]=o[e]);return t}function Ei(o,r){if(!r||!r.length)return!0;if(!o)return!1;for(var a=0,e;a Auth section -> Sign in method tab.',o):'http'==n||'https'==n?r=v('This domain (%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.',o):t='operation-not-supported-in-this-environment',Oi.call(this,t,r)}function lr(o,t,n){Oi.call(this,o,n),o=t||{},o.sb&&Ii(this,'email',o.sb),o.Y&&Ii(this,'phoneNumber',o.Y),o.credential&&Ii(this,'credential',o.credential)}function dr(o){if(o.code){var t=o.code||'';0==t.indexOf(_p)&&(t=t.substring(_p.length));var n={credential:sr(o)};if(o.email)n.sb=o.email;else{if(!o.phoneNumber)return new Oi(t,o.message||void 0);n.Y=o.phoneNumber}return new lr(t,n,o.message)}return null}function pr(e){this.f=e}function vr(o,t,n){var e='Node'==Qe();if(!(e=Ld.XMLHttpRequest||e&&Nd.INTERNAL.node&&Nd.INTERNAL.node.XMLHttpRequest))throw new Oi('internal-error','The XMLHttpRequest compatibility library was not found.');this.b=o,o=t||{},this.i=o.secureTokenEndpoint||'https://securetoken.googleapis.com/v1/token',this.l=o.secureTokenTimeout||Jp,this.c=L(o.secureTokenHeaders||$p),this.g=o.firebaseEndpoint||'https://www.googleapis.com/identitytoolkit/v3/relyingparty/',this.h=o.firebaseTimeout||Zp,this.a=L(o.firebaseHeaders||ec),n&&(this.a['X-Client-Version']=n,this.c['X-Client-Version']=n),this.f=new je,this.o=new pr(e)}function mr(e,t){t?e.a['X-Firebase-Locale']=t:delete e.a['X-Firebase-Locale']}function gr(e,t){t?(e.a['X-Client-Version']=t,e.c['X-Client-Version']=t):(delete e.a['X-Client-Version'],delete e.c['X-Client-Version'])}function br(s,t,n,e,i,r,o){mi()?(Be()?s=f(s.m,s):(tc||(tc=new $(function(e,t){wr(e,t)})),s=f(s.u,s)),s(t,n,e,i,r,o)):n&&n(null)}function wr(e,t){((window.gapi||{}).client||{}).request?e():(Ld[oc]=function(){((window.gapi||{}).client||{}).request?e():t(Error('CORS_UNSUPPORTED'))},Dn(_e(At(nc,{onload:oc})),function(){t(Error('CORS_UNSUPPORTED'))}))}function yr(o,t){return new $(function(n,e){'refresh_token'==t.grant_type&&t.refresh_token||'authorization_code'==t.grant_type&&t.code?br(o,o.i+'?key='+encodeURIComponent(o.b),function(o){o?o.error?e(Mr(o)):o.access_token&&o.refresh_token?n(o):e(new Oi('internal-error')):e(new Oi('network-request-failed'))},'POST',''+ue(t),o.c,o.l.get()):e(new Oi('internal-error'))})}function Ir(d,t,l,e,i,n){var r=ne(d.g+t);Qn(r,'key',d.b),n&&Qn(r,'cb',''+Pd());var a='GET'==l;if(a)for(var o in e)e.hasOwnProperty(o)&&Qn(r,o,e[o]);return new $(function(s,n){br(d,''+r,function(e){e?e.error?n(Mr(e,i||{})):s(e):n(new Oi('network-request-failed'))},l,a?void 0:jt(fi(e)),d.a,d.h.get())})}function Tr(e){if(!bp.test(e.email))throw new Oi('invalid-email')}function Ar(e){'email'in e&&Tr(e)}function ud(e,t){return yd(e,dc,{identifier:t,continueUri:si()?Ke():'http://localhost'}).then(function(e){return e.allProviders||[]})}function Er(e){return yd(e,mc,{}).then(function(e){return e.authorizedDomains||[]})}function Nr(e){if(!e[Yp])throw new Oi('internal-error')}function hd(e){if(!(e.phoneNumber||e.temporaryProof)){if(!e.sessionInfo)throw new Oi('missing-verification-id');if(!e.code)throw new Oi('missing-verification-code')}else if(!e.phoneNumber||!e.temporaryProof)throw new Oi('internal-error')}function md(e,t){return yd(e,bc,t)}function Pr(o,t,r){return yd(o,pc,{idToken:t,deleteProvider:r})}function Cr(e){if(!e.requestUri||!e.sessionId&&!e.postBody)throw new Oi('internal-error')}function gd(e){var t=null;if(e.needConfirmation?(e.code='account-exists-with-different-credential',t=dr(e)):'FEDERATED_USER_ID_ALREADY_LINKED'==e.errorMessage?(e.code='credential-already-in-use',t=dr(e)):'EMAIL_EXISTS'==e.errorMessage?(e.code='email-already-in-use',t=dr(e)):e.errorMessage&&(t=jr(e.errorMessage)),t)throw t;if(!e[Yp])throw new Oi('internal-error')}function fd(e,t){return t.returnIdpCredential=!0,yd(e,Ec,t)}function Dr(e,t){return t.returnIdpCredential=!0,yd(e,Tc,t)}function Lr(e,t){return t.returnIdpCredential=!0,t.autoCreate=!1,yd(e,kc,t)}function xr(e){if(!e.oobCode)throw new Oi('invalid-action-code')}function yd(o,t,n){if(!Ei(n,t.ea))return nt(new Oi('internal-error'));var e=t.zb||'POST',r;return tt(n).then(t.D).then(function(){return t.T&&(n.returnSecureToken=!0),Ir(o,t.endpoint,e,n,t.Pb,t.nb||!1)}).then(function(e){return r=e}).then(t.O).then(function(){if(!t.ga)return r;if(!(t.ga in r))throw new Oi('internal-error');return r[t.ga]})}function jr(e){return Mr({error:{errors:[{message:e}],code:400,message:e}})}function Mr(o,t){var a=(o.error&&o.error.errors&&o.error.errors[0]||{}).reason||'',e={keyInvalid:'invalid-api-key',ipRefererBlocked:'app-not-authorized'};if(a=e[a]?new Oi(e[a]):null)return a;for(var i in a=o.error&&o.error.message||'',e={INVALID_CUSTOM_TOKEN:'invalid-custom-token',CREDENTIAL_MISMATCH:'custom-token-mismatch',MISSING_CUSTOM_TOKEN:'internal-error',INVALID_IDENTIFIER:'invalid-email',MISSING_CONTINUE_URI:'internal-error',INVALID_EMAIL:'invalid-email',INVALID_PASSWORD:'wrong-password',USER_DISABLED:'user-disabled',MISSING_PASSWORD:'internal-error',EMAIL_EXISTS:'email-already-in-use',PASSWORD_LOGIN_DISABLED:'operation-not-allowed',INVALID_IDP_RESPONSE:'invalid-credential',FEDERATED_USER_ID_ALREADY_LINKED:'credential-already-in-use',INVALID_MESSAGE_PAYLOAD:'invalid-message-payload',INVALID_RECIPIENT_EMAIL:'invalid-recipient-email',INVALID_SENDER:'invalid-sender',EMAIL_NOT_FOUND:'user-not-found',EXPIRED_OOB_CODE:'expired-action-code',INVALID_OOB_CODE:'invalid-action-code',MISSING_OOB_CODE:'internal-error',CREDENTIAL_TOO_OLD_LOGIN_AGAIN:'requires-recent-login',INVALID_ID_TOKEN:'invalid-user-token',TOKEN_EXPIRED:'user-token-expired',USER_NOT_FOUND:'user-token-expired',CORS_UNSUPPORTED:'cors-unsupported',DYNAMIC_LINK_NOT_ACTIVATED:'dynamic-link-not-activated',INVALID_APP_ID:'invalid-app-id',TOO_MANY_ATTEMPTS_TRY_LATER:'too-many-requests',WEAK_PASSWORD:'weak-password',OPERATION_NOT_ALLOWED:'operation-not-allowed',USER_CANCELLED:'user-cancelled',CAPTCHA_CHECK_FAILED:'captcha-check-failed',INVALID_APP_CREDENTIAL:'invalid-app-credential',INVALID_CODE:'invalid-verification-code',INVALID_PHONE_NUMBER:'invalid-phone-number',INVALID_SESSION_INFO:'invalid-verification-id',INVALID_TEMPORARY_PROOF:'invalid-credential',MISSING_APP_CREDENTIAL:'missing-app-credential',MISSING_CODE:'missing-verification-code',MISSING_PHONE_NUMBER:'missing-phone-number',MISSING_SESSION_INFO:'missing-verification-id',QUOTA_EXCEEDED:'quota-exceeded',SESSION_EXPIRED:'code-expired',INVALID_CONTINUE_URI:'invalid-continue-uri',MISSING_ANDROID_PACKAGE_NAME:'missing-android-pkg-name',MISSING_IOS_BUNDLE_ID:'missing-ios-bundle-id',UNAUTHORIZED_DOMAIN:'unauthorized-continue-uri',INVALID_OAUTH_CLIENT_ID:'invalid-oauth-client-id',INVALID_CERT_HASH:'invalid-cert-hash'},x(e,t||{}),t=(t=a.match(/^[^\s]+\s*:\s*(.*)$/))&&1t.c?Xn(t,op,56-t.c):Xn(t,op,t.b-(t.c-56));for(var e=63;56<=e;e--)t.f[e]=255&n,n/=256;for(qn(t),e=n=0;e>a;return Nn(o)}function jo(d,t,n,e){var i=xo(),r=new cr(t,e,null,i,new Oi('no-auth-event')),o=ri('BuildInfo.packageName',Ld);if('string'!=typeof o)throw new Oi('invalid-cordova-configuration');var l=ri('BuildInfo.displayName',Ld),s={};if(ii().toLowerCase().match(/iphone|ipad|ipod/))s.ibi=o;else{if(!ii().toLowerCase().match(/android/))return nt(new Oi('operation-not-supported-in-this-environment'));s.apn=o}l&&(s.appDisplayName=l),i=Uo(i),s.sessionId=i;var p=Zr(d.u,d.i,d.l,t,n,null,e,d.m,s,d.o);return d.ba().then(function(){var e=d.h;return d.A.a.set(jc,r.B(),e)}).then(function(){var t=ri('cordova.plugins.browsertab.isAvailable',Ld);if('function'!=typeof t)throw new Oi('invalid-cordova-configuration');var o=null;t(function(e){if(e){if('function'!=typeof(o=ri('cordova.plugins.browsertab.openUrl',Ld)))throw new Oi('invalid-cordova-configuration');o(p)}else{if('function'!=typeof(o=ri('cordova.InAppBrowser.open',Ld)))throw new Oi('invalid-cordova-configuration');e=ii(),e=e.match(/(iPad|iPhone|iPod).*OS 7_\d/i)||e.match(/(iPad|iPhone|iPod).*OS 8_\d/i),d.a=o(p,e?'_blank':'_system','location=yes')}})})}function Mo(o,t){for(var n=0;ne.f&&(e.a=e.f),t)}function la(e,t){da(e),e.b=mn(fa(e,t)).then(function(){return e.l?tt():wi()}).then(function(){return e.h()}).then(function(){la(e,!0)}).s(function(t){e.i(t)&&la(e,!1)})}function da(e){e.b&&(e.b.cancel(),e.b=null)}function pa(e){this.f=e,this.b=this.a=null,this.c=0}function va(o,t){var n=t[Yp],e=t.refreshToken;t=ma(t.expiresIn),o.b=n,o.c=t,o.a=e}function ma(e){return Pd()+1e3*parseInt(e,10)}function ga(e,t){return yr(e.f,t).then(function(t){return e.b=t.access_token,e.c=ma(t.expires_in),e.a=t.refresh_token,{accessToken:e.b,expirationTime:e.c,refreshToken:e.a}}).s(function(t){throw'auth/user-token-expired'==t.code&&(e.a=null),t})}function ba(e,t){this.a=e||null,this.b=t||null,Ti(this,{lastSignInTime:yi(t||null),creationTime:yi(e||null)})}function wa(e){return new ba(e.a,e.b)}function ya(a,s,d,e,i,r){Ti(this,{uid:a,displayName:e||null,photoURL:i||null,email:d||null,phoneNumber:r||null,providerId:s})}function Ia(o,t){for(var n in Xt.call(this,o),t)this[n]=t[n]}function Ta(o,t,n){this.A=[],this.G=o.apiKey,this.o=o.appName,this.w=o.authDomain||null,o=Nd.SDK_VERSION?ei(Nd.SDK_VERSION):null,this.c=new vr(this.G,Vr(Oc),o),this.h=new pa(this.c),Ca(this,t[Yp]),va(this.h,t),Ii(this,'refreshToken',this.h.a),La(this,n||{}),hn.call(this),this.I=!1,this.w&&ai()&&(this.a=Zo(this.w,this.G,this.o)),this.N=[],this.i=null,this.l=Sa(this),this.U=f(this.Ga,this);var e=this;this.ha=null,this.ra=function(n){e.na(n.h)},this.W=null,this.R=[],this.qa=function(n){ka(e,n.f)},this.V=null}function Sd(e,t){e.W&&nn(e.W,'languageCodeChanged',e.ra),(e.W=t)&&$t(t,'languageCodeChanged',e.ra)}function ka(e,t){e.R=t,gr(e.c,Nd.SDK_VERSION?ei(Nd.SDK_VERSION,e.R):null)}function Ea(e,t){e.V&&nn(e.V,'frameworkChanged',e.qa),(e.V=t)&&$t(t,'frameworkChanged',e.qa)}function Na(e){try{return Nd.app(e.o).auth()}catch(t){throw new Oi('internal-error','No firebase.auth.Auth instance is available for the Firebase App \''+e.o+'\'!')}}function Sa(e){return new ha(function(){return e.F(!0)},function(e){return e&&'auth/network-request-failed'==e.code},function(){var t=e.h.c-Pd()-3e5;return 0i||i>=Jc.length)throw new Oi('internal-error','Argument validator received an unsupported number of arguments.');n=Jc[i],e=(e?'':n+' argument ')+(t.name?'"'+t.name+'" ':'')+'must be '+t.K+'.';break t}e=null}}if(e)throw new Oi('argument-error',s+' failed: '+e)}function Ds(o,n){return{name:o||'',K:'a valid string',optional:!!n,M:td}}function Ls(){return{name:'opt_forceRefresh',K:'a boolean',optional:!0,M:e}}function xs(e,t){return{name:e||'',K:'a valid object',optional:!!t,M:ad}}function Us(e,t){return{name:e||'',K:'a function',optional:!!t,M:a}}function js(e,t){return{name:e||'',K:'null',optional:!!t,M:r}}function Ms(){return{name:'',K:'an HTML element',optional:!1,M:function(e){return!!(e&&e instanceof Element)}}}function Vs(){return{name:'auth',K:'an instance of Firebase Auth',optional:!0,M:function(e){return!!(e&&e instanceof ps)}}}function Fs(){return{name:'app',K:'an instance of Firebase App',optional:!0,M:function(e){return!!(e&&e instanceof Nd.app.App)}}}function Ks(o){return{name:o?o+'Credential':'credential',K:o?'a valid '+o+' credential':'a valid credential',optional:!1,M:function(r){if(!r)return!1;var a=!o||r.providerId===o;return r.wa&&a}}}function qs(){return{name:'authProvider',K:'a valid Auth provider',optional:!1,M:function(e){return!!(e&&e.providerId&&e.hasOwnProperty&&e.hasOwnProperty('isOAuthProvider'))}}}function Xs(){return{name:'applicationVerifier',K:'an implementation of firebase.auth.ApplicationVerifier',optional:!1,M:function(e){return!!(e&&td(e.type)&&a(e.verify))}}}function Bs(o,t,n,e){return{name:n||'',K:o.K+' or '+t.K,optional:!!e,M:function(n){return o.M(n)||t.M(n)}}}function Hs(d,t,n,e,i,r){if(Ii(this,'type','recaptcha'),this.b=this.c=null,this.m=!1,this.l=t,this.a=n||{theme:'light',type:'image'},this.g=[],this.a[eu])throw new Oi('argument-error','sitekey should not be provided for reCAPTCHA as one is automatically provisioned for the current project.');if(this.h='invisible'===this.a[tu],!_t(t)||!this.h&&_t(t).hasChildNodes())throw new Oi('argument-error','reCAPTCHA container is either not found or already contains inner elements!');this.u=new vr(d,r||null,i||null),this.o=e||function(){return null};var o=this;this.i=[];var a=this.a[$c];this.a[$c]=function(e){if(Ws(o,e),'function'==typeof a)a(e);else if('string'==typeof a){var t=ri(a,Ld);'function'==typeof t&&t(e)}};var l=this.a[Zc];this.a[Zc]=function(){if(Ws(o,null),'function'==typeof l)l();else if('string'==typeof l){var e=ri(l,Ld);'function'==typeof e&&e()}}}function Ws(o,t){for(var n=0;n>>0),Od=0,Pd=Date.now||function(){return+new Date},Dd;id(p,Error),p.prototype.name='CustomError';var _d=String.prototype.trim?function(e){return e.trim()}:function(e){return e.replace(/^[\s\xa0]+|[\s\xa0]+$/g,'')},Md=/&/g,Fd=//g,Ud=/"/g,Vd=/'/g,Wd=/\x00/g,Hd=/[\x00&<>"']/;id(w,p),w.prototype.name='AssertionError';var qd=Array.prototype.indexOf?function(o,t,n){return Array.prototype.indexOf.call(o,t,n)}:function(t,n,e){if(e=null==e?0:0>e?d(0,t.length+e):e,td(t))return td(n)&&1==n.length?t.indexOf(n,e):-1;for(;eparseFloat(rl)){ol=il+'';break t}}ol=rl}var sl={},dl=Ld.document,ll;ll=dl&&$d?M()||('CSS1Compat'==dl.compatMode?parseInt(ol,10):5):void 0,q.prototype.get=function(){if(0'),Rt(''),Rt('
');var Nl={cellpadding:'cellPadding',cellspacing:'cellSpacing',colspan:'colSpan',frameborder:'frameBorder',height:'height',maxlength:'maxLength',nonce:'nonce',role:'role',rowspan:'rowSpan',type:'type',usemap:'useMap',valign:'vAlign',width:'width'},Al={'"':'\\"',"\\":'\\\\',"/":'\\/',"":'\\b'," ":'\\f',"\n":'\\n',"\r":'\\r'," ":'\\t'," ":'\\u000b'},Ll=/\uffff/.test('\uFFFF')?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g,Rl=0,Ol={};Kt.prototype.oa=!1,Kt.prototype.ta=function(){if(this.Fa)for(;this.Fa.length;)this.Fa.shift()()};var Pl=Object.freeze||function(e){return e},Dl=!$d||9<=+ll,_l=$d&&!V('9'),Ml=function(){if(!Ld.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},'passive',{get:function(){e=!0}});return Ld.addEventListener('test',nd,t),Ld.removeEventListener('test',nd,t),e}();Xt.prototype.c=function(){this.Bb=!1},id(Bt,Xt);var Fl=Pl({2:'touch',3:'pen',4:'mouse'});Bt.prototype.c=function(){Bt.ib.c.call(this);var e=this.a;if(e.preventDefault)e.preventDefault();else if(e.returnValue=!1,_l)try{(e.ctrlKey||112<=e.keyCode&&123>=e.keyCode)&&(e.keyCode=-1)}catch(e){}},Bt.prototype.g=function(){return this.a};var Bl='closure_listenable_'+(0|1e6*Math.random()),Ul=0,Vl='closure_lm_'+(0|1e6*Math.random()),Wl={},Hl=0,ql='__closure_events_fn_'+(1e9*Math.random()>>>0);id(hn,Kt),hn.prototype[Bl]=!0,hn.prototype.removeEventListener=function(o,t,n,e){nn(this,o,t,n,e)},hn.prototype.ta=function(){if(hn.ib.ta.call(this),this.u){var o=this.u,n=0,e;for(e in o.a){for(var t=o.a[e],a=0;a=yn(this).value)for(a(t)&&(t=t()),o=new gn(o,t+'',this.f),n&&(o.a=n),n='log:'+o.b,(o=Ld.console)&&o.timeStamp&&o.timeStamp(n),(o=Ld.msWriteProfilerMark)&&o(n),n=this;n;)n=n.a};var Xl={},Ql=null;Dd=Tn.prototype,Dd.P=function(){An(this);for(var e=[],t=0;t=--t.l&&t.cancel()}this.v?this.v.call(this.o,this):this.u=!0,this.a||(e=new Mn,_n(this),Rn(this,!1,e))}},Cn.prototype.m=function(e,t){this.i=!1,Rn(this,e,t)},Cn.prototype.A=function(e){_n(this),Rn(this,!0,e)},Cn.prototype.then=function(a,t,n){var e=new $(function(e,t){o=e,i=t}),o,i;return Ln(this,o,function(n){n instanceof Mn?e.cancel():i(n)}),e.then(a,t,n)},F(Cn),id(jn,p),jn.prototype.message='Deferred has already fired',jn.prototype.name='AlreadyCalledError',id(Mn,p),Mn.prototype.message='Deferred was canceled',Mn.prototype.name='CanceledError',Vn.prototype.c=function(){throw delete $l[this.a],this.b};var $l={},Zl;id(Fn,function(){this.b=-1});for(var ep=64,tp=[],np=0;npthis.c-3e4?this.a?ga(this,{grant_type:'refresh_token',refresh_token:this.a}):tt(null):tt({accessToken:this.b,expirationTime:this.c,refreshToken:this.a})},ba.prototype.B=function(){return{lastLoginAt:this.b,createdAt:this.a}},id(Ia,Xt),id(Ta,hn),Ta.prototype.na=function(e){this.ha=e,mr(this.c,e)},Ta.prototype.$=function(){return this.ha},Ta.prototype.Ka=function(){return S(this.R)},Ta.prototype.Ga=function(){this.l.b&&(da(this.l),this.l.start())},Ii(Ta.prototype,'providerId','firebase'),Dd=Ta.prototype,Dd.reload=function(){var e=this;return Za(this,Ua(this).then(function(){return qa(e).then(function(){return _a(e)}).then(xa)}))},Dd.F=function(e){var o=this;return Za(this,Ua(this).then(function(){return o.h.getToken(e)}).then(function(e){if(!e)throw new Oi('internal-error');return e.accessToken!=o.pa&&(Ca(o,e.accessToken),fn(o,new Ia('tokenChanged'))),Fa(o,'refreshToken',e.refreshToken),e.accessToken}))},Dd.getToken=function(e){return Tp['firebase.User.prototype.getToken is deprecated. Please use firebase.User.prototype.getIdToken instead.']||(Tp['firebase.User.prototype.getToken is deprecated. Please use firebase.User.prototype.getIdToken instead.']=!0,'undefined'!=typeof console&&'function'==typeof console.warn&&console.warn('firebase.User.prototype.getToken is deprecated. Please use firebase.User.prototype.getIdToken instead.')),this.F(e)},Dd.kc=function(o){if(!(o=o.users)||!o.length)throw new Oi('internal-error');o=o[0],La(this,{uid:o.localId,displayName:o.displayName,photoURL:o.photoUrl,email:o.email,emailVerified:!!o.emailVerified,phoneNumber:o.phoneNumber,lastLoginAt:o.lastLoginAt,createdAt:o.createdAt});for(var t=Ha(o),n=0;nthis.o&&(this.o=0),0==this.o&&Ss(this)&&Pa(Ss(this)),this.removeAuthTokenListener(o)},Dd.addAuthTokenListener=function(e){var t=this;this.m.push(e),Rs(this,this.i.then(function(){t.l||A(t.m,e)&&e(Os(t))}))},Dd.removeAuthTokenListener=function(e){E(this.m,function(t){return t==e})},Dd.delete=function(){this.l=!0;for(var e=0;et?n.push(o.substring(r,t)):n.push(o.substring(r,r+e));return n},m.each=function(o,a){if(Array.isArray(o))for(var e=0;er,r=Math.abs(r),2.2250738585072014e-308<=r?(o=Math.min(g(Math.log(r)/Math.LN2),1023),n=o+1023,i=t(r*Math.pow(2,52-o)-4503599627370496)):(n=0,i=t(r/5e-324))),s=[],a=52;a;a-=1)s.push(i%2?1:0),i=g(i/2);for(a=11;a;a-=1)s.push(n%2?1:0),n=g(n/2);s.push(e?1:0),s.reverse(),d=s.join('');var l='';for(a=0;64>a;a+=8){var p=parseInt(d.substr(a,8),2).toString(16);1===p.length&&(p='0'+p),l+=p}return l.toLowerCase()},m.isChromeExtensionContentScript=function(){return'object'==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)},m.isWindowsStoreApp=function(){return'object'==typeof Windows&&'object'==typeof Windows.UI},m.errorForServerCode=function(o,e){var t='Unknown Error';'too_big'===o?t='The data requested exceeds the maximum size that can be accessed with a single request.':'permission_denied'==o?t='Client doesn\'t have permission to access the desired data.':'unavailable'==o&&(t='The service is unavailable');var n=Error(o+' at '+e.path+': '+t);return n.code=o.toUpperCase(),n},m.e=/^-?\d{1,10}$/,m.tryParseInt=function(t){if(m.e.test(t)){var o=+t;if(-2147483648<=o&&2147483647>=o)return o}return null},m.exceptionGuard=function(t){try{t()}catch(t){setTimeout(function(){var e=t.stack||'';throw m.warn('Exception was thrown by user callback.',e),t},0)}},m.callUserCallback=function(t){for(var o=[],n=1;n=this.n.length?null:this.n[this.i]},o.prototype.getLength=function(){return this.n.length-this.i},o.prototype.popFront=function(){var e=this.i;return e=this.n.length)return null;for(var e=[],t=this.i;t=this.n.length},o.relativePath=function(e,t){var n=e.getFront(),r=t.getFront();if(null===n)return t;if(n===r)return o.relativePath(e.popFront(),t.popFront());throw Error('INTERNAL ERROR: innerPath ('+t+') is not within outerPath ('+e+')')},o.comparePaths=function(r,e){for(var t=r.slice(),n=e.slice(),i=0,o;io.getLength())return!1;for(;et.MAX_PATH_LENGTH_BYTES)throw Error(this.o+'has a key path longer than '+t.MAX_PATH_LENGTH_BYTES+' bytes ('+this.l+').');if(this.u.length>t.MAX_PATH_DEPTH)throw Error(this.o+'path specified exceeds the maximum depth that can be written ('+t.MAX_PATH_DEPTH+') or object contains a cycle '+this.toErrorString())},t.prototype.toErrorString=function(){return 0==this.u.length?'':'in property \''+this.u.join('.')+'\''},t}();e.ValidationPath=o},function(r,e,t){'use strict';var n=this&&this.__extends||function(){var o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,e){n.__proto__=e}||function(o,e){for(var t in e)e.hasOwnProperty(t)&&(o[t]=e[t])};return function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}}();Object.defineProperty(e,'__esModule',{value:!0});var o=t(15),d=t(1),i=t(5),l=t(16),c,a;e.setNodeFromJSON=function(t){c=t},e.setMaxNode=function(t){a=t};var s=function(o){function e(){return null!==o&&o.apply(this,arguments)||this}return n(e,o),e.prototype.compare=function(o,e){var t=o.node.getPriority(),n=e.node.getPriority(),r=t.compareTo(n);return 0===r?d.nameCompare(o.name,e.name):r},e.prototype.isDefinedOn=function(t){return!t.getPriority().isEmpty()},e.prototype.indexedValueChanged=function(n,e){return!n.getPriority().equals(e.getPriority())},e.prototype.minPost=function(){return i.NamedNode.MIN},e.prototype.maxPost=function(){return new i.NamedNode(d.MAX_NAME,new l.LeafNode('[PRIORITY-POST]',a))},e.prototype.makePost=function(o,e){var t=c(o);return new i.NamedNode(e,new l.LeafNode('[PRIORITY-POST]',t))},e.prototype.toString=function(){return'.priority'},e}(o.Index);e.PriorityIndex=s,e.PRIORITY_INDEX=new s},function(m,g,e){'use strict';var n=this&&this.__extends||function(){var o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,e){n.__proto__=e}||function(o,e){for(var t in e)e.hasOwnProperty(t)&&(o[t]=e[t])};return function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}}();Object.defineProperty(g,'__esModule',{value:!0});var b=e(0),t=e(1),o=e(17),v=e(5),r=e(37),l=e(3),a=e(10),s=e(39),p=e(16),d=e(41),c=function(){function p(o,a,t){this._=o,this.y=a,this.g=t,this.m=null,this.y&&r.validatePriorityNode(this.y),this._.isEmpty()&&b.assert(!this.y||this.y.isEmpty(),'An empty node cannot have a priority')}return Object.defineProperty(p,'EMPTY_NODE',{get:function(){return u||(u=new p(new o.SortedMap(d.NAME_COMPARATOR),null,s.IndexMap.Default))},enumerable:!0,configurable:!0}),p.prototype.isLeafNode=function(){return!1},p.prototype.getPriority=function(){return this.y||u},p.prototype.updatePriority=function(e){return this._.isEmpty()?this:new p(this._,e,this.g)},p.prototype.getImmediateChild=function(n){if('.priority'===n)return this.getPriority();var e=this._.get(n);return null===e?u:e},p.prototype.getChild=function(n){var e=n.getFront();return null===e?this:this.getImmediateChild(e).getChild(n.popFront())},p.prototype.hasChild=function(t){return null!==this._.get(t)},p.prototype.updateImmediateChild=function(e,t){if(b.assert(t,'We should always be passing snapshot nodes'),'.priority'===e)return this.updatePriority(t);var n=new v.NamedNode(e,t),o,r,a;return t.isEmpty()?(o=this._.remove(e),r=this.g.removeFromIndexes(n,this._)):(o=this._.insert(e,t),r=this.g.addToIndexes(n,this._)),a=o.isEmpty()?u:this.y,new p(o,a,r)},p.prototype.updateChild=function(o,e){var t=o.getFront();if(null===t)return e;b.assert('.priority'!==o.getFront()||1===o.getLength(),'.priority must be the last token in a path');var n=this.getImmediateChild(t).updateChild(o.popFront(),e);return this.updateImmediateChild(t,n)},p.prototype.isEmpty=function(){return this._.isEmpty()},p.prototype.numChildren=function(){return this._.count()},p.prototype.val=function(e){if(this.isEmpty())return null;var d={},n=0,r=0,i=!0;if(this.forEachChild(l.PRIORITY_INDEX,function(t,o){d[t]=o.val(e),n++,i&&p.e.test(t)?r=Math.max(r,+t):i=!1}),!e&&i&&r<2*n){var o=[];for(var a in d)o[a]=d[a];return o}return e&&!this.getPriority().isEmpty()&&(d['.priority']=this.getPriority().val()),d},p.prototype.hash=function(){if(null===this.m){var o='';this.getPriority().isEmpty()||(o+='priority:'+r.priorityHashText(this.getPriority().val())+':'),this.forEachChild(l.PRIORITY_INDEX,function(e,t){var n=t.hash();''!==n&&(o+=':'+e+':'+n)}),this.m=''==o?'':t.sha1(o)}return this.m},p.prototype.getPredecessorChildName=function(o,e,t){var n=this.C(t);if(n){var r=n.getPredecessorKey(new v.NamedNode(o,e));return r?r.name:null}return this._.getPredecessorKey(o)},p.prototype.getFirstChildName=function(o){var e=this.C(o);if(e){var t=e.minKey();return t&&t.name}return this._.minKey()},p.prototype.getFirstChild=function(n){var e=this.getFirstChildName(n);return e?new v.NamedNode(e,this._.get(e)):null},p.prototype.getLastChildName=function(o){var e=this.C(o);if(e){var t=e.maxKey();return t&&t.name}return this._.maxKey()},p.prototype.getLastChild=function(n){var e=this.getLastChildName(n);return e?new v.NamedNode(e,this._.get(e)):null},p.prototype.forEachChild=function(o,r){var e=this.C(o);return e?e.inorderTraversal(function(t){return r(t.name,t.node)}):this._.inorderTraversal(r)},p.prototype.getIterator=function(t){return this.getIteratorFrom(t.minPost(),t)},p.prototype.getIteratorFrom=function(o,e){var t=this.C(e);if(t)return t.getIteratorFrom(o,function(t){return t});for(var n=this._.getIteratorFrom(o.name,v.NamedNode.Wrap),r=n.peek();null!=r&&0>e.compare(r,o);)n.getNext(),r=n.peek();return n},p.prototype.getReverseIterator=function(t){return this.getReverseIteratorFrom(t.maxPost(),t)},p.prototype.getReverseIteratorFrom=function(o,e){var t=this.C(e);if(t)return t.getReverseIteratorFrom(o,function(t){return t});for(var n=this._.getReverseIteratorFrom(o.name,v.NamedNode.Wrap),r=n.peek();null!=r&&0p.S/3&&o.stringLength(e)>p.S)throw Error(i+'contains a string greater than '+p.S+' utf8 bytes '+a.toErrorString()+' (\''+e.substring(0,50)+'...\')');if(e&&'object'==typeof e){var s=!1,d=!1;if(c.forEach(e,function(e,t){if('.value'===e)s=!0;else if('.priority'!==e&&'.sv'!==e&&(d=!0,!p.isValidKey(e)))throw Error(i+' contains an invalid key ('+e+') '+a.toErrorString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');a.push(e),p.validateFirebaseData(i,t,a),a.pop()}),s&&d)throw Error(i+' contains ".value" child '+a.toErrorString()+' in addition to actual children.')}},p.validateFirebaseMergePaths=function(r,e){var n,i;for(n=0;ni)a=this.I?a.left:a.right;else{if(0===i){this.O.push(a);break}this.O.push(a),a=this.I?a.right:a.left}}return t.prototype.getNext=function(){if(0===this.O.length)return null;var n=this.O.pop(),t;if(t=this.R?this.R(n.key,n.value):{key:n.key,value:n.value},this.I)for(n=n.left;!n.isEmpty();)this.O.push(n),n=n.right;else for(n=n.right;!n.isEmpty();)this.O.push(n),n=n.left;return t},t.prototype.hasNext=function(){return 0n?r.copy(null,null,null,r.left.insert(o,e,t),null):0===n?r.copy(null,e,null,null,null):r.copy(null,null,null,null,r.right.insert(o,e,t)),r.D()},a.prototype.M=function(){if(this.left.isEmpty())return d.EMPTY_NODE;var t=this;return t.left.L()||t.left.left.L()||(t=t.F()),t=t.copy(null,null,null,t.left.M(),null),t.D()},a.prototype.remove=function(o,e){var t,n;if(t=this,0>e(o,t.key))t.left.isEmpty()||t.left.L()||t.left.left.L()||(t=t.F()),t=t.copy(null,null,null,t.left.remove(o,e),null);else{if(t.left.L()&&(t=t.x()),t.right.isEmpty()||t.right.L()||t.right.left.L()||(t=t.k()),0===e(o,t.key)){if(t.right.isEmpty())return d.EMPTY_NODE;n=t.right.A(),t=t.copy(n.key,n.value,null,null,t.right.M())}t=t.copy(null,null,null,null,t.right.remove(o,e))}return t.D()},a.prototype.L=function(){return this.color},a.prototype.D=function(){var t=this;return t.right.L()&&!t.left.L()&&(t=t.W()),t.left.L()&&t.left.left.L()&&(t=t.x()),t.left.L()&&t.right.L()&&(t=t.j()),t},a.prototype.F=function(){var t=this.j();return t.right.left.L()&&(t=t.copy(null,null,null,null,t.right.x()),t=t.W(),t=t.j()),t},a.prototype.k=function(){var t=this.j();return t.left.left.L()&&(t=t.x(),t=t.j()),t},a.prototype.W=function(){var e=this.copy(null,null,a.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)},a.prototype.x=function(){var e=this.copy(null,null,a.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)},a.prototype.j=function(){var n=this.left.copy(null,null,!this.left.color,null,null),e=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,n,e)},a.prototype.V=function(){var t=this.Q();return Math.pow(2,t)<=this.count()+1},a.prototype.Q=function(){var t;if(this.L()&&this.left.L())throw Error('Red node has red child('+this.key+','+this.value+')');if(this.right.L())throw Error('Right child of ('+this.key+','+this.value+') is red');if((t=this.left.Q())!==this.right.Q())throw Error('Black depths differ');return t+(this.L()?0:1)},a.RED=!0,a.BLACK=!1,a}();e.LLRBNode=r;var t=function(){function t(){}return t.prototype.copy=function(){return this},t.prototype.insert=function(n,e){return new r(n,e,null)},t.prototype.remove=function(){return this},t.prototype.count=function(){return 0},t.prototype.isEmpty=function(){return!0},t.prototype.inorderTraversal=function(){return!1},t.prototype.reverseTraversal=function(){return!1},t.prototype.minKey=function(){return null},t.prototype.maxKey=function(){return null},t.prototype.Q=function(){return 0},t.prototype.L=function(){return!1},t}();e.LLRBEmptyNode=t;var d=function(){function o(e,t){void 0===t&&(t=o.EMPTY_NODE),this.U=e,this.B=t}return o.prototype.insert=function(e,t){return new o(this.U,this.B.insert(e,t,this.U).copy(null,null,r.BLACK,null,null))},o.prototype.remove=function(e){return new o(this.U,this.B.remove(e,this.U).copy(null,null,r.BLACK,null,null))},o.prototype.get=function(o){for(var e=this.B,n;!e.isEmpty();){if(0===(n=this.U(o,e.key)))return e.value;0>n?e=e.left:0r?e=e.left:0.firebaseio.com instead'),n&&'undefined'!=n||o.fatal('Cannot parse Firebase url. Please use https://.firebaseio.com'),e.secure||o.warnIfPageIsSecure();var r='ws'===e.scheme||'wss'===e.scheme;return{repoInfo:new i.RepoInfo(e.host,e.secure,n,r),path:new t.Path(e.pathString)}},d.parseURL=function(r){var d='',m='',g='',f='',y=!0,b='https',v=443;if('string'==typeof r){var x=r.indexOf('//');0<=x&&(b=r.substring(0,x-1),r=r.substring(x+2));var l=r.indexOf('/');-1===l&&(l=r.length),d=r.substring(0,l),f=p(r.substring(l));var h=d.split('.');3===h.length?(m=h[1],g=h[0].toLowerCase()):2===h.length&&(m=h[0]),0<=(x=d.indexOf(':'))&&(y='https'===b||'wss'===b,v=parseInt(d.substring(x+1),10))}return{host:d,port:v,domain:m,subdomain:g,secure:y,scheme:b,pathString:f}}},function(d,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var l=t(0),r=t(0),p=t(13),i=t(14),n=function(){function t(o,a,t,n,r){void 0===r&&(r=''),this.secure=a,this.namespace=t,this.webSocketOnly=n,this.persistenceKey=r,this.host=o.toLowerCase(),this.domain=this.host.substr(this.host.indexOf('.')+1),this.internalHost=p.PersistentStorage.get('host:'+o)||this.host}return t.prototype.needsQueryParam=function(){return this.host!==this.internalHost},t.prototype.isCacheableHost=function(){return's-'===this.internalHost.substr(0,2)},t.prototype.isDemoHost=function(){return'firebaseio-demo.com'===this.domain},t.prototype.isCustomHost=function(){return'firebaseio.com'!==this.domain&&'firebaseio-demo.com'!==this.domain},t.prototype.updateHost=function(t){t!==this.internalHost&&(this.internalHost=t,this.isCacheableHost()&&p.PersistentStorage.set('host:'+this.host,this.internalHost))},t.prototype.connectionURL=function(a,s){l.assert('string'==typeof a,'typeof type must == string'),l.assert('object'==typeof s,'typeof params must == object');var d;if(a===i.WEBSOCKET)d=(this.secure?'wss://':'ws://')+this.internalHost+'/.ws?';else{if(a!==i.LONG_POLLING)throw Error('Unknown connection type: '+a);d=(this.secure?'https://':'http://')+this.internalHost+'/.lp?'}this.needsQueryParam()&&(s.ns=this.namespace);var n=[];return r.forEach(s,function(o,e){n.push(o+'='+e)}),d+n.join('&')},t.prototype.toString=function(){var t=this.toURLString();return this.persistenceKey&&(t+='<'+this.persistenceKey+'>'),t},t.prototype.toURLString=function(){return(this.secure?'https://':'http://')+this.host},t}();e.RepoInfo=n},function(d,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var l=t(0),r=t(7),i=t(1),p=t(0),n=function(){function t(n,o){this.Ie=n,this.Oe=o}return t.prototype.cancel=function(n){l.validateArgCount('OnDisconnect.cancel',0,1,arguments.length),l.validateCallback('OnDisconnect.cancel',1,n,!0);var e=new p.Deferred;return this.Ie.onDisconnectCancel(this.Oe,e.wrapCallback(n)),e.promise},t.prototype.remove=function(n){l.validateArgCount('OnDisconnect.remove',0,1,arguments.length),r.validateWritablePath('OnDisconnect.remove',this.Oe),l.validateCallback('OnDisconnect.remove',1,n,!0);var e=new p.Deferred;return this.Ie.onDisconnectSet(this.Oe,null,e.wrapCallback(n)),e.promise},t.prototype.set=function(o,e){l.validateArgCount('OnDisconnect.set',1,2,arguments.length),r.validateWritablePath('OnDisconnect.set',this.Oe),r.validateFirebaseDataArg('OnDisconnect.set',1,o,this.Oe,!1),l.validateCallback('OnDisconnect.set',2,e,!0);var t=new p.Deferred;return this.Ie.onDisconnectSet(this.Oe,o,t.wrapCallback(e)),t.promise},t.prototype.setWithPriority=function(a,e,t){l.validateArgCount('OnDisconnect.setWithPriority',2,3,arguments.length),r.validateWritablePath('OnDisconnect.setWithPriority',this.Oe),r.validateFirebaseDataArg('OnDisconnect.setWithPriority',1,a,this.Oe,!1),r.validatePriority('OnDisconnect.setWithPriority',2,e,!1),l.validateCallback('OnDisconnect.setWithPriority',3,t,!0);var n=new p.Deferred;return this.Ie.onDisconnectSetWithPriority(this.Oe,a,e,n.wrapCallback(t)),n.promise},t.prototype.update=function(o,e){if(l.validateArgCount('OnDisconnect.update',1,2,arguments.length),r.validateWritablePath('OnDisconnect.update',this.Oe),Array.isArray(o)){for(var t={},n=0;n=e)throw Error('Query.limitToFirst: First argument must be a positive integer.');if(this.Ae.hasLimit())throw Error('Query.limitToFirst: Limit was already set (by another call to limit, limitToFirst, or limitToLast).');return new h(this.repo,this.path,this.Ae.limitToFirst(e),this.De)},h.prototype.limitToLast=function(e){if(c.validateArgCount('Query.limitToLast',1,1,arguments.length),'number'!=typeof e||n(e)!==e||0>=e)throw Error('Query.limitToLast: First argument must be a positive integer.');if(this.Ae.hasLimit())throw Error('Query.limitToLast: Limit was already set (by another call to limit, limitToFirst, or limitToLast).');return new h(this.repo,this.path,this.Ae.limitToLast(e),this.De)},h.prototype.orderByChild=function(e){if(c.validateArgCount('Query.orderByChild',1,1,arguments.length),'$key'===e)throw Error('Query.orderByChild: "$key" is invalid. Use Query.orderByKey() instead.');if('$priority'===e)throw Error('Query.orderByChild: "$priority" is invalid. Use Query.orderByPriority() instead.');if('$value'===e)throw Error('Query.orderByChild: "$value" is invalid. Use Query.orderByValue() instead.');y.validatePathString('Query.orderByChild',1,e,!1),this.Fe('Query.orderByChild');var t=new l.Path(e);if(t.isEmpty())throw Error('Query.orderByChild: cannot pass in empty path. Use Query.orderByValue() instead.');var n=new s.PathIndex(t),o=this.Ae.orderBy(n);return h.Me(o),new h(this.repo,this.path,o,!0)},h.prototype.orderByKey=function(){c.validateArgCount('Query.orderByKey',0,0,arguments.length),this.Fe('Query.orderByKey');var e=this.Ae.orderBy(i.KEY_INDEX);return h.Me(e),new h(this.repo,this.path,e,!0)},h.prototype.orderByPriority=function(){c.validateArgCount('Query.orderByPriority',0,0,arguments.length),this.Fe('Query.orderByPriority');var e=this.Ae.orderBy(o.PRIORITY_INDEX);return h.Me(e),new h(this.repo,this.path,e,!0)},h.prototype.orderByValue=function(){c.validateArgCount('Query.orderByValue',0,0,arguments.length),this.Fe('Query.orderByValue');var e=this.Ae.orderBy(a.VALUE_INDEX);return h.Me(e),new h(this.repo,this.path,e,!0)},h.prototype.startAt=function(e,t){void 0===e&&(e=null),c.validateArgCount('Query.startAt',0,2,arguments.length),y.validateFirebaseDataArg('Query.startAt',1,e,this.path,!0),y.validateKey('Query.startAt',2,t,!0);var n=this.Ae.startAt(e,t);if(h.Le(n),h.Me(n),this.Ae.hasStart())throw Error('Query.startAt: Starting point was already set (by another call to startAt or equalTo).');return void 0===e&&(e=null,t=null),new h(this.repo,this.path,n,this.De)},h.prototype.endAt=function(e,t){void 0===e&&(e=null),c.validateArgCount('Query.endAt',0,2,arguments.length),y.validateFirebaseDataArg('Query.endAt',1,e,this.path,!0),y.validateKey('Query.endAt',2,t,!0);var n=this.Ae.endAt(e,t);if(h.Le(n),h.Me(n),this.Ae.hasEnd())throw Error('Query.endAt: Ending point was already set (by another call to endAt or equalTo).');return new h(this.repo,this.path,n,this.De)},h.prototype.equalTo=function(n,e){if(c.validateArgCount('Query.equalTo',1,2,arguments.length),y.validateFirebaseDataArg('Query.equalTo',1,n,this.path,!1),y.validateKey('Query.equalTo',2,e,!0),this.Ae.hasStart())throw Error('Query.equalTo: Starting point was already set (by another call to startAt or equalTo).');if(this.Ae.hasEnd())throw Error('Query.equalTo: Ending point was already set (by another call to endAt or equalTo).');return this.startAt(n,e).endAt(n,e)},h.prototype.toString=function(){return c.validateArgCount('Query.toString',0,0,arguments.length),''+this.repo+this.path.toUrlEncodedString()},h.prototype.toJSON=function(){return c.validateArgCount('Query.toJSON',0,1,arguments.length),''+this},h.prototype.queryObject=function(){return this.Ae.getQueryObject()},h.prototype.queryIdentifier=function(){var n=this.queryObject(),e=u.ObjectToUniqueKey(n);return'{}'===e?'default':e},h.prototype.isEqual=function(e){if(c.validateArgCount('Query.isEqual',1,1,arguments.length),!(e instanceof h))throw Error('Query.isEqual failed: First argument must be an instance of firebase.database.Query.');var t=this.repo===e.repo,n=this.path.equals(e.path),o=this.queryIdentifier()===e.queryIdentifier();return t&&n&&o},h.xe=function(o,e,a){var n={cancel:null,context:null};if(e&&a)n.cancel=e,c.validateCallback(o,3,n.cancel,!0),n.context=a,c.validateContextObject(o,4,n.context,!0);else if(e)if('object'==typeof e&&null!==e)n.context=e;else{if('function'!=typeof e)throw Error(c.errorPrefix(o,3,!0)+' must either be a cancel callback or a context object.');n.cancel=e}return n},Object.defineProperty(h.prototype,'ref',{get:function(){return this.getRef()},enumerable:!0,configurable:!0}),h}(),f;e.Query=h},function(r,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var n=t(0),o=t(1),a=t(0),s;e.setMaxNode=function(t){s=t},e.priorityHashText=function(t){return'number'==typeof t?'number:'+o.doubleToIEEE754String(t):'string:'+t},e.validatePriorityNode=function(o){if(o.isLeafNode()){var e=o.val();n.assert('string'==typeof e||'number'==typeof e||'object'==typeof e&&a.contains(e,'.sv'),'Priority must be a string or number.')}else n.assert(o===s||o.isEmpty(),'priority of unexpected type.');n.assert(o===s||o.getPriority().isEmpty(),'Priority nodes can\'t have a priority of their own.')}},function(d,e,t){'use strict';var n=this&&this.__extends||function(){var o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,e){n.__proto__=e}||function(o,e){for(var t in e)e.hasOwnProperty(t)&&(o[t]=e[t])};return function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}}();Object.defineProperty(e,'__esModule',{value:!0});var r=t(15),i=t(5),o=t(1),a=t(11),s=function(r){function e(){return null!==r&&r.apply(this,arguments)||this}return n(e,r),e.prototype.compare=function(r,e){var t=r.node.compareTo(e.node);return 0===t?o.nameCompare(r.name,e.name):t},e.prototype.isDefinedOn=function(){return!0},e.prototype.indexedValueChanged=function(n,e){return!n.equals(e)},e.prototype.minPost=function(){return i.NamedNode.MIN},e.prototype.maxPost=function(){return i.NamedNode.MAX},e.prototype.makePost=function(o,e){var t=a.nodeFromJSON(o);return new i.NamedNode(e,t)},e.prototype.toString=function(){return'.value'},e}(r.Index);e.ValueIndex=s,e.VALUE_INDEX=new s},function(d,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var m=t(0),i=t(40),o=t(0),a=t(5),n=t(3),s=t(10),g={},l=function(){function l(n,o){this.ke=n,this.We=o}return Object.defineProperty(l,'Default',{get:function(){return m.assert(n.PRIORITY_INDEX,'ChildrenNode.ts has not been loaded'),p=p||new l({".priority":g},{".priority":n.PRIORITY_INDEX})},enumerable:!0,configurable:!0}),l.prototype.get=function(n){var e=o.safeGet(this.ke,n);if(!e)throw Error('No index defined for '+n);return e===g?null:e},l.prototype.hasIndex=function(t){return o.contains(this.We,''+t)},l.prototype.addIndex=function(e,t){m.assert(e!==s.KEY_INDEX,'KeyIndex always exists and isn\'t meant to be added to the IndexMap.');for(var n=[],r=!1,u=t.getIterator(a.NamedNode.Wrap),c=u.getNext();c;)r=r||e.isDefinedOn(c.node),n.push(c),c=u.getNext();var p=r?i.buildChildSet(n,e.getCompare()):g;var d=''+e,h=o.clone(this.We);h[d]=e;var f=o.clone(this.ke);return f[d]=p,new l(f,h)},l.prototype.addToIndexes=function(s,t){var n=this;return new l(o.map(this.ke,function(r,e){var u=o.safeGet(n.We,e);if(m.assert(u,'Missing index implementation for '+e),r===g){if(u.isDefinedOn(s.node)){for(var l=[],c=t.getIterator(a.NamedNode.Wrap),p=c.getNext();p;)p.name!=s.name&&l.push(p),p=c.getNext();return l.push(s),i.buildChildSet(l,u.getCompare())}return g}var d=t.get(s.name),h=r;return d&&(h=h.remove(new a.NamedNode(s.name,d))),h.insert(s,s.node)}),this.We)},l.prototype.removeFromIndexes=function(i,t){return new l(o.map(this.ke,function(n){if(n===g)return n;var e=t.get(i.name);return e?n.remove(new a.NamedNode(i.name,e)):n}),this.We)},l}(),p;e.IndexMap=l},function(o,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var d=t(17),r=t(17),i=function(){function t(n){this.count=function(t){return parseInt(Math.log(t)/0.6931471805599453,10)}(n+1),this.je=this.count-1;var o=function(t){return parseInt(Array(t+1).join('1'),2)}(this.count);this.Ve=n+1&o}return t.prototype.nextBitIsOne=function(){var t=!(this.Ve&1<=this.pn?(this.de('Secondary connection is healthy.'),this.nn=!0,this.tn.markConnectionHealthy(),this.dn()):(this.de('sending ping on secondary.'),this.tn.send({t:'c',d:{t:'p',d:{}}}))},t.prototype.dn=function(){this.tn.start(),this.de('sending client ack on secondary'),this.tn.send({t:'c',d:{t:'a',d:{}}}),this.de('Ending transmission on primary'),this.Yt.send({t:'c',d:{t:'n',d:{}}}),this.Zt=this.tn,this.tryCleanupConnection()},t.prototype.sn=function(o){var e=l.requireKey('t',o),t=l.requireKey('d',o);'c'==e?this.fn(t):'d'==e&&this.wt(t)},t.prototype.wt=function(t){this._n(),this.Ut(t)},t.prototype._n=function(){this.nn||0>=--this.zt&&(this.de('Primary connection is healthy.'),this.nn=!0,this.Yt.markConnectionHealthy())},t.prototype.fn=function(o){var e=l.requireKey('t',o);if('d'in o){var t=o.d;if('h'===e)this.yn(t);else if('n'===e){this.de('recvd end transmission on primary'),this.en=this.tn;for(var n=0;ndocument.domain="'+document.domain+'";');var d=''+s+'';try{this.myIFrame.doc.open(),this.myIFrame.doc.write(d),this.myIFrame.doc.close()}catch(t){m.log('frame writing exception'),t.stack&&m.log(t.stack),m.log(t)}}}return a.Dn=function(){var n=document.createElement('iframe');if(n.style.display='none',!document.body)throw'Document body has not initialized. Wait to initialize Firebase until after the document is ready.';document.body.appendChild(n);try{n.contentWindow.document||m.log('No IE domain setting required')}catch(t){var e=document.domain;n.src='javascript:void((function(){document.open();document.domain=\''+e+'\';document.close();})())'}return n.contentDocument?n.doc=n.contentDocument:n.contentWindow?n.doc=n.contentWindow.document:n.document&&(n.doc=n.document),n},a.prototype.close=function(){var e=this;if(this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.innerHTML='',setTimeout(function(){null!==e.myIFrame&&(document.body.removeChild(e.myIFrame),e.myIFrame=null)},0)),f.isNodeSdk()&&this.myID){var t={};t[p.FIREBASE_LONGPOLL_DISCONN_FRAME_PARAM]='t',t[p.FIREBASE_LONGPOLL_ID_PARAM]=this.myID,t[p.FIREBASE_LONGPOLL_PW_PARAM]=this.myPW;var n=this.urlFn(t);a.nodeRestRequest(n)}var r=this.onDisconnect;r&&(this.onDisconnect=null,r())},a.prototype.startLongPoll=function(n,e){for(this.myID=n,this.myPW=e,this.alive=!0;this.Mn(););},a.prototype.Mn=function(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.count()<(0=this.pendingSegs[0].d.length+30+n.length;)a=this.pendingSegs.shift(),n=n+'&'+p.FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM+r+'='+a.seg+'&'+p.FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET+r+'='+a.ts+'&'+p.FIREBASE_LONGPOLL_DATA_PARAM+r+'='+a.d,r++;return e+=n,this.Ln(e,this.currentSerial),!0}return!1},a.prototype.enqueueSegment=function(o,r,a){this.pendingSegs.push({seg:o,ts:r,d:a}),this.alive&&this.Mn()},a.prototype.Ln=function(o,e){var t=this;this.outstandingRequests.add(e,1);var n=function(){t.outstandingRequests.remove(e),t.Mn()},r=setTimeout(n,25000);this.addTag(o,function(){clearTimeout(r),n()})},a.prototype.addTag=function(o,r){var e=this;f.isNodeSdk()?this.doNodeLongPoll(o,r):setTimeout(function(){try{if(!e.sendNewPolls)return;var t=e.myIFrame.doc.createElement('script');t.type='text/javascript',t.async=!0,t.src=o,t.onload=t.onreadystatechange=function(){var n=t.readyState;n&&'loaded'!==n&&'complete'!==n||(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),r())},t.onerror=function(){m.log('Long-poll script failed to load: '+o),e.sendNewPolls=!1,e.close()},e.myIFrame.doc.body.appendChild(t)}catch(t){}},1)},a}();p.FirebaseIFrameScriptHolder=l},function(o,r,t){'use strict';(function(n){Object.defineProperty(r,'__esModule',{value:!0});var e=t(6),i=t(0),o=t(1),a=t(25),m=t(14),u=t(0),l=t(13),s=t(0),h=t(0),p=null;'undefined'==typeof MozWebSocket?'undefined'!=typeof WebSocket&&(p=WebSocket):p=MozWebSocket,r.setWebSocketImpl=function(t){p=t};var d=function(){function d(t,e,n,r){this.connId=t,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.de=o.logWrapper(this.connId),this.$=a.StatsManager.getCollection(e),this.connURL=d.Fn(e,n,r)}return d.Fn=function(o,e,t){var n={};return n[m.VERSION_PARAM]=m.PROTOCOL_VERSION,!h.isNodeSdk()&&'undefined'!=typeof location&&location.href&&-1!==location.href.indexOf(m.FORGE_DOMAIN)&&(n[m.REFERER_PARAM]=m.FORGE_REF),e&&(n[m.TRANSPORT_SESSION_PARAM]=e),t&&(n[m.LAST_SESSION_PARAM]=t),o.connectionURL(m.WEBSOCKET,n)},d.prototype.open=function(i,t){var d=this;this.onDisconnect=t,this.onMessage=i,this.de('Websocket connecting to '+this.connURL),this.bn=!1,l.PersistentStorage.set('previous_websocket_failure',!0);try{if(h.isNodeSdk()){var r=u.CONSTANTS.NODE_ADMIN?'AdminNode':'Node',o={headers:{"User-Agent":'Firebase/'+m.PROTOCOL_VERSION+'/'+e.default.SDK_VERSION+'/'+n.platform+'/'+r}},a=n.env,s=0==this.connURL.indexOf('wss://')?a.HTTPS_PROXY||a.https_proxy:a.HTTP_PROXY||a.http_proxy;s&&(o.proxy={origin:s}),this.mySock=new p(this.connURL,[],o)}else this.mySock=new p(this.connURL)}catch(t){this.de('Error instantiating WebSocket.');var g=t.message||t.data;return g&&this.de(g),void this.wn()}this.mySock.onopen=function(){d.de('Websocket connected.'),d.bn=!0},this.mySock.onclose=function(){d.de('Websocket connection was disconnected.'),d.mySock=null,d.wn()},this.mySock.onmessage=function(t){d.handleIncomingFrame(t)},this.mySock.onerror=function(n){d.de('WebSocket error. Closing connection.');var e=n.message||n.data;e&&d.de(e),d.wn()}},d.prototype.start=function(){},d.forceDisallow=function(){d.On=!0},d.isAvailable=function(){var t=!1;if('undefined'!=typeof navigator&&navigator.userAgent){var o=/Android ([0-9]{0,}\.[0-9]{0,})/,n=navigator.userAgent.match(o);n&&1parseFloat(n[1])&&(t=!0)}return!t&&null!==p&&!d.On},d.previouslyFailed=function(){return l.PersistentStorage.isInMemoryStorage||!0===l.PersistentStorage.get('previous_websocket_failure')},d.prototype.markConnectionHealthy=function(){l.PersistentStorage.remove('previous_websocket_failure')},d.prototype.xn=function(o){if(this.frames.push(o),this.frames.length==this.totalFrames){var e=this.frames.join('');this.frames=null;var t=s.jsonEval(e);this.onMessage(t)}},d.prototype.kn=function(t){this.totalFrames=t,this.frames=[]},d.prototype.Wn=function(n){if(i.assert(null===this.frames,'We already have a frame buffer'),6>=n.length){var o=+n;if(!isNaN(o))return this.kn(o),null}return this.kn(1),n},d.prototype.handleIncomingFrame=function(o){if(null!==this.mySock){var e=o.data;if(this.bytesReceived+=e.length,this.$.incrementCounter('bytes_received',e.length),this.resetKeepAlive(),null!==this.frames)this.xn(e);else{var t=this.Wn(e);null!==t&&this.xn(t)}}},d.prototype.send=function(a){this.resetKeepAlive();var e=s.stringify(a);this.bytesSent+=e.length,this.$.incrementCounter('bytes_sent',e.length);var t=o.splitStringBySize(e,16384);1=this.me.compare(this.getStartPost(),t)&&0>=this.me.compare(t,this.getEndPost())},r.prototype.updateChild=function(a,e,t,n,r,i){return this.matches(new p.NamedNode(e,t))||(t=o.ChildrenNode.EMPTY_NODE),this.Vn.updateChild(a,e,t,n,r,i)},r.prototype.updateFullNode=function(a,e,t){e.isLeafNode()&&(e=o.ChildrenNode.EMPTY_NODE);var n=e.withIndex(this.me);n=n.updatePriority(o.ChildrenNode.EMPTY_NODE);var r=this;return e.forEachChild(l.PRIORITY_INDEX,function(a,e){r.matches(new p.NamedNode(a,e))||(n=n.updateImmediateChild(a,o.ChildrenNode.EMPTY_NODE))}),this.Vn.updateFullNode(a,n,t)},r.prototype.updatePriority=function(t){return t},r.prototype.filtersNodes=function(){return!0},r.prototype.getIndexedFilter=function(){return this.Vn},r.prototype.getIndex=function(){return this.me},r.qn=function(n){if(n.hasStart()){var e=n.getIndexStartName();return n.getIndex().makePost(n.getIndexStartValue(),e)}return n.getIndex().minPost()},r.Bn=function(n){if(n.hasEnd()){var e=n.getIndexEndName();return n.getIndex().makePost(n.getIndexEndValue(),e)}return n.getIndex().maxPost()},r}();e.RangedFilter=r},,,,,,,,,,,,,,,,,,,,,,function(o,e,t){o.exports=t(79)},function(m,e,t){'use strict';function n(e){var t=e.INTERNAL.registerService('database',function(o,e,t){return u.RepoManager.getInstance().databaseFromApp(o,t)},{Reference:a.Reference,Query:o.Query,Database:i.Database,enableLogging:s.enableLogging,INTERNAL:l,ServerValue:p,TEST_ACCESS:g},null,!0);y.isNodeSdk()&&(m.exports=t)}Object.defineProperty(e,'__esModule',{value:!0});var r=t(6),i=t(32);e.Database=i.Database;var o=t(36);e.Query=o.Query;var a=t(21);e.Reference=a.Reference;var s=t(1);e.enableLogging=s.enableLogging;var u=t(26),l=t(111),g=t(112),y=t(0),p=i.Database.ServerValue;e.ServerValue=p,e.registerDatabase=n,n(r.default);var b=t(22);e.DataSnapshot=b.DataSnapshot;var f=t(35);e.OnDisconnect=f.OnDisconnect},function(o,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var n=t(0),r=function(){function t(t){this.Hn=t,this.Gn='firebase:'}return t.prototype.set=function(o,e){null==e?this.Hn.removeItem(this.Kn(o)):this.Hn.setItem(this.Kn(o),n.stringify(e))},t.prototype.get=function(o){var e=this.Hn.getItem(this.Kn(o));return null==e?null:n.jsonEval(e)},t.prototype.remove=function(t){this.Hn.removeItem(this.Kn(t))},t.prototype.Kn=function(t){return this.Gn+t},t.prototype.toString=function(){return''+this.Hn},t}();e.DOMStorageWrapper=r},function(o,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var n=t(0),r=function(){function t(){this.Yn={},this.isInMemoryStorage=!0}return t.prototype.set=function(n,e){null==e?delete this.Yn[n]:this.Yn[n]=e},t.prototype.get=function(t){return n.contains(this.Yn,t)?this.Yn[t]:null},t.prototype.remove=function(t){delete this.Yn[t]},t}();e.MemoryStorage=r},function(o,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var n=t(0),r=function(){function t(n,o){this.committed=n,this.snapshot=o}return t.prototype.toJSON=function(){return n.validateArgCount('TransactionResult.toJSON',0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}},t}();e.TransactionResult=r},function(o,e,t){'use strict';var d=Math.floor;Object.defineProperty(e,'__esModule',{value:!0});var l=t(0);e.nextPushId=function(){var o='-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',e=0,t=[];return function(n){var r=n===e;e=n;var i=Array(8),s;for(s=7;0<=s;s--)i[s]=o.charAt(n%64),n=d(n/64);l.assert(0===n,'Cannot push at time == 0');var a=i.join('');if(r){for(s=11;0<=s&&63===t[s];s--)t[s]=0;t[s]++}else for(s=0;12>s;s++)t[s]=d(64*Math.random());for(s=0;12>s;s++)a+=o.charAt(t[s]);return l.assert(20===a.length,'nextPushId: Length should be 20.'),a}}()},function(d,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var l=t(22),r=t(85),p=t(0),i=t(0),n=function(){function n(o,r,t){this.Xn=o,this.zn=r,this.Jn=t}return n.prototype.respondsTo=function(t){return'value'===t},n.prototype.createEvent=function(o,e){var t=e.getQueryParams().getIndex();return new r.DataEvent('value',this,new l.DataSnapshot(o.snapshotNode,e.getRef(),t))},n.prototype.getEventRunner=function(o){var e=this.Jn;if('cancel'===o.getEventType()){i.assert(this.zn,'Raising a cancel event on a listener with no cancel callback');var t=this.zn;return function(){t.call(e,o.error)}}var n=this.Xn;return function(){n.call(e,o.snapshot)}},n.prototype.createCancelEvent=function(n,e){return this.zn?new r.CancelEvent(this,n,e):null},n.prototype.matches=function(e){return e instanceof n&&(!e.Xn||!this.Xn||e.Xn===this.Xn&&e.Jn===this.Jn)},n.prototype.hasAnyCallback=function(){return null!==this.Xn},n}();e.ValueEventRegistration=n;var o=function(){function o(o,r,t){this.$n=o,this.zn=r,this.Jn=t}return o.prototype.respondsTo=function(n){var e='children_added'===n?'child_added':n;return e='children_removed'==e?'child_removed':e,p.contains(this.$n,e)},o.prototype.createCancelEvent=function(n,e){return this.zn?new r.CancelEvent(this,n,e):null},o.prototype.createEvent=function(a,e){i.assert(null!=a.childName,'Child events should have a childName.');var t=e.getRef().child(a.childName),n=e.getQueryParams().getIndex();return new r.DataEvent(a.type,this,new l.DataSnapshot(a.snapshotNode,t,n),a.prevName)},o.prototype.getEventRunner=function(o){var e=this.Jn;if('cancel'===o.getEventType()){i.assert(this.zn,'Raising a cancel event on a listener with no cancel callback');var t=this.zn;return function(){t.call(e,o.error)}}var n=this.$n[o.eventType];return function(){n.call(e,o.snapshot,o.prevName)}},o.prototype.matches=function(a){if(a instanceof o){if(!this.$n||!a.$n)return!0;if(this.Jn===a.Jn){var e=p.getCount(a.$n);if(e===p.getCount(this.$n)){if(1===e){var t=p.getAnyKey(a.$n),n=p.getAnyKey(this.$n);return!(n!==t||a.$n[t]&&this.$n[n]&&a.$n[t]!==this.$n[n])}return p.every(this.$n,function(t,e){return a.$n[t]===e})}}}return!1},o.prototype.hasAnyCallback=function(){return null!==this.$n},o}();e.ChildEventRegistration=o},function(a,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var n=t(0),r=function(){function t(o,a,t,n){this.eventType=o,this.eventRegistration=a,this.snapshot=t,this.prevName=n}return t.prototype.getPath=function(){var t=this.snapshot.getRef();return'value'===this.eventType?t.path:t.getParent().path},t.prototype.getEventType=function(){return this.eventType},t.prototype.getEventRunner=function(){return this.eventRegistration.getEventRunner(this)},t.prototype.toString=function(){return this.getPath()+':'+this.eventType+':'+n.stringify(this.snapshot.exportVal())},t}();e.DataEvent=r;var i=function(){function t(o,r,t){this.eventRegistration=o,this.error=r,this.path=t}return t.prototype.getPath=function(){return this.path},t.prototype.getEventType=function(){return'cancel'},t.prototype.getEventRunner=function(){return this.eventRegistration.getEventRunner(this)},t.prototype.toString=function(){return this.path+':cancel'},t}();e.CancelEvent=i},function(m,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var g=t(0),b=t(1),i=t(87),r=t(4),o=t(0),v=t(23),n=t(88),u=t(89),h=t(8),c=t(46),x=t(2),a=t(47),s=t(95),d=function(){function m(t){this.Zn=t,this.er=v.ImmutableTree.Empty,this.tr=new s.WriteTree,this.nr={},this.rr={}}return m.prototype.applyUserOverwrite=function(o,e,t,n){return this.tr.addOverwrite(o,e,t,n),n?this.ir(new c.Overwrite(h.OperationSource.User,o,e)):[]},m.prototype.applyUserMerge=function(o,e,t){this.tr.addMerge(o,e,t);var n=v.ImmutableTree.fromObject(e);return this.ir(new u.Merge(h.OperationSource.User,o,n))},m.prototype.ackUserWrite=function(a,e){void 0===e&&(e=!1);var t=this.tr.getWrite(a);if(this.tr.removeWrite(a)){var n=v.ImmutableTree.Empty;return null==t.snap?o.forEach(t.children,function(o,e){n=n.set(new x.Path(o),e)}):n=n.set(x.Path.Empty,!0),this.ir(new i.AckUserWrite(t.path,n,e))}return[]},m.prototype.applyServerOverwrite=function(n,e){return this.ir(new c.Overwrite(h.OperationSource.Server,n,e))},m.prototype.applyServerMerge=function(o,e){var t=v.ImmutableTree.fromObject(e);return this.ir(new u.Merge(h.OperationSource.Server,o,t))},m.prototype.applyListenComplete=function(t){return this.ir(new n.ListenComplete(h.OperationSource.Server,t))},m.prototype.applyTaggedQueryOverwrite=function(e,t,n){var r=this.or(n);if(null!=r){var i=m.ar(r),o=i.path,a=i.queryId,s=x.Path.relativePath(o,e),d=new c.Overwrite(h.OperationSource.forServerTaggedQuery(a),s,t);return this.sr(o,d)}return[]},m.prototype.applyTaggedQueryMerge=function(e,t,n){var r=this.or(n);if(r){var i=m.ar(r),o=i.path,a=i.queryId,s=x.Path.relativePath(o,e),d=v.ImmutableTree.fromObject(t),l=new u.Merge(h.OperationSource.forServerTaggedQuery(a),s,d);return this.sr(o,l)}return[]},m.prototype.applyTaggedListenComplete=function(e,t){var d=this.or(t);if(d){var r=m.ar(d),i=r.path,o=r.queryId,a=x.Path.relativePath(i,e),s=new n.ListenComplete(h.OperationSource.forServerTaggedQuery(o),a);return this.sr(i,s)}return[]},m.prototype.addEventRegistration=function(e,t){var d=e.path,i=null,o=!1;this.er.foreachOnPath(d,function(r,e){var t=x.Path.relativePath(r,d);i=i||e.getCompleteServerCache(t),o=o||e.hasCompleteView()});var n=this.er.get(d);n?(o=o||n.hasCompleteView(),i=i||n.getCompleteServerCache(x.Path.Empty)):(n=new a.SyncPoint,this.er=this.er.set(d,n));var u;null==i?(u=!1,i=r.ChildrenNode.EMPTY_NODE,this.er.subtree(d).foreachChild(function(o,e){var t=e.getCompleteServerCache(x.Path.Empty);t&&(i=i.updateImmediateChild(o,t))})):u=!0;var l=n.viewExistsForQuery(e);if(!l&&!e.getQueryParams().loadsAllData()){var f=m.ur(e);g.assert(!(f in this.rr),'View does not exist, but we have a tag');var c=m.lr();this.rr[f]=c,this.nr['_'+c]=f}var p=this.tr.childWrites(d),b=n.addEventRegistration(e,t,p,i,u);if(!l&&!o){var y=n.viewForQuery(e);b=b.concat(this.hr(e,y))}return b},m.prototype.removeEventRegistration=function(e,t,n){var r=this,i=e.path,o=this.er.get(i),a=[];if(o&&('default'===e.queryIdentifier()||o.viewExistsForQuery(e))){var s=o.removeEventRegistration(e,t,n);o.isEmpty()&&(this.er=this.er.remove(i));var u=s.removed;a=s.events;var l=-1!==u.findIndex(function(t){return t.getQueryParams().loadsAllData()}),h=this.er.findOnPath(i,function(n,e){return e.hasCompleteView()});if(l&&!h){var g=this.er.subtree(i);if(!g.isEmpty())for(var p=this.cr(g),d=0;dthis.Gr,'Stacking an older write on top of newer ones'),void 0===s&&(s=!0),this.Hr.push({path:o,snap:a,writeId:i,visible:s}),s&&(this.Br=this.Br.addWrite(o,a)),this.Gr=i},d.prototype.addMerge=function(o,r,a){m.assert(a>this.Gr,'Stacking an older merge on top of newer ones'),this.Hr.push({path:o,children:r,writeId:a,visible:!0}),this.Br=this.Br.addWrites(o,r),this.Gr=a},d.prototype.getWrite=function(o){for(var e=0,t;e=e&&this.Kr(d,t.path)?o=!1:t.path.contains(d.path)&&(a=!0)),s--;if(o){if(a)return this.Yr(),!0;if(t.snap)this.Br=this.Br.removeWrite(t.path);else{var l=t.children;n.forEach(l,function(n){i.Br=i.Br.removeWrite(t.path.child(n))})}return!0}return!1},d.prototype.getCompleteWriteData=function(t){return this.Br.getCompleteNode(t)},d.prototype.calcCompleteEventCache=function(o,e,t,n){if(t||n){var u=this.Br.childCompoundWrite(o);if(!n&&u.isEmpty())return e;if(n||null!=e||u.hasCompleteWrite(g.Path.Empty)){var a=function(a){return(a.visible||n)&&(!t||!~t.indexOf(a.writeId))&&(a.path.contains(o)||o.contains(a.path))},s=d.Xr(this.Hr,a,o),l=e||c.ChildrenNode.EMPTY_NODE;return s.apply(l)}return null}var h=this.Br.getCompleteNode(o);if(null!=h)return h;var m=this.Br.childCompoundWrite(o);if(m.isEmpty())return e;if(null!=e||m.hasCompleteWrite(g.Path.Empty)){var l=e||c.ChildrenNode.EMPTY_NODE;return m.apply(l)}return null},d.prototype.calcCompleteEventChildren=function(o,e){var s=c.ChildrenNode.EMPTY_NODE,t=this.Br.getCompleteNode(o);if(t)return t.isLeafNode()||t.forEachChild(a.PRIORITY_INDEX,function(n,e){s=s.updateImmediateChild(n,e)}),s;if(e){var n=this.Br.childCompoundWrite(o);return e.forEachChild(a.PRIORITY_INDEX,function(o,e){var t=n.childCompoundWrite(new g.Path(o)).apply(e);s=s.updateImmediateChild(o,t)}),n.getCompleteChildren().forEach(function(t){s=s.updateImmediateChild(t.name,t.node)}),s}return this.Br.childCompoundWrite(o).getCompleteChildren().forEach(function(t){s=s.updateImmediateChild(t.name,t.node)}),s},d.prototype.calcEventCacheAfterServerOverwrite=function(i,e,t,n){m.assert(t||n,'Either existingEventSnap or existingServerSnap must exist');var r=i.child(e);if(this.Br.hasCompleteWrite(r))return null;var o=this.Br.childCompoundWrite(r);return o.isEmpty()?n.getChild(e):o.apply(n.getChild(e))},d.prototype.calcCompleteChild=function(o,e,t){var n=o.child(e),r=this.Br.getCompleteNode(n);return null==r?t.isCompleteForChild(e)?this.Br.childCompoundWrite(n).apply(t.getNode().getImmediateChild(e)):null:r},d.prototype.shadowingWrite=function(t){return this.Br.getCompleteNode(t)},d.prototype.calcIndexedSlice=function(o,e,t,n,r,i){var a=this.Br.childCompoundWrite(o),u=a.getCompleteNode(g.Path.Empty),l;if(null!=u)l=u;else{if(null==e)return[];l=a.apply(e)}if(l=l.withIndex(i),l.isEmpty()||l.isLeafNode())return[];for(var s=[],h=i.getCompare(),c=r?l.getReverseIteratorFrom(t,i):l.getIteratorFrom(t,i),p=c.getNext();p&&s.lengthl.status){try{r=o.jsonEval(l.responseText)}catch(t){p.warn('Failed to parse JSON response for '+s+': '+l.responseText)}t(null,r)}else 401!==l.status&&404!==l.status&&p.warn('Got unsuccessful REST response for '+s+' Status: '+l.status),t(l.status);t=null}},l.open('GET',s,!0),l.send()})},d}(i.ServerActions);e.ReadonlyRestClient=s},function(m,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var g=t(0),n=t(1),r=t(10),o=t(3),a=t(38),s=t(42),i=t(24),l=t(108),u=t(56),c=t(0),p=function(){function d(){this.fi=!1,this._i=!1,this.yi=!1,this.vi=!1,this.gi=!1,this.mi=0,this.Ci='',this.Ei=null,this.Ni='',this.Pi=null,this.bi='',this.me=o.PRIORITY_INDEX}return d.prototype.hasStart=function(){return this._i},d.prototype.isViewFromLeft=function(){return''===this.Ci?this._i:this.Ci===d.Si.VIEW_FROM_LEFT},d.prototype.getIndexStartValue=function(){return g.assert(this._i,'Only valid if start has been set'),this.Ei},d.prototype.getIndexStartName=function(){return g.assert(this._i,'Only valid if start has been set'),this.yi?this.Ni:n.MIN_NAME},d.prototype.hasEnd=function(){return this.vi},d.prototype.getIndexEndValue=function(){return g.assert(this.vi,'Only valid if end has been set'),this.Pi},d.prototype.getIndexEndName=function(){return g.assert(this.vi,'Only valid if end has been set'),this.gi?this.bi:n.MAX_NAME},d.prototype.hasLimit=function(){return this.fi},d.prototype.hasAnchoredLimit=function(){return this.fi&&''!==this.Ci},d.prototype.getLimit=function(){return g.assert(this.fi,'Only valid if limit has been set'),this.mi},d.prototype.getIndex=function(){return this.me},d.prototype.Ti=function(){var e=new d;return e.fi=this.fi,e.mi=this.mi,e._i=this._i,e.Ei=this.Ei,e.yi=this.yi,e.Ni=this.Ni,e.vi=this.vi,e.Pi=this.Pi,e.gi=this.gi,e.bi=this.bi,e.me=this.me,e.Ci=this.Ci,e},d.prototype.limit=function(n){var e=this.Ti();return e.fi=!0,e.mi=n,e.Ci='',e},d.prototype.limitToFirst=function(e){var t=this.Ti();return t.fi=!0,t.mi=e,t.Ci=d.Si.VIEW_FROM_LEFT,t},d.prototype.limitToLast=function(e){var t=this.Ti();return t.fi=!0,t.mi=e,t.Ci=d.Si.VIEW_FROM_RIGHT,t},d.prototype.startAt=function(o,e){var t=this.Ti();return t._i=!0,void 0===o&&(o=null),t.Ei=o,null==e?(t.yi=!1,t.Ni=''):(t.yi=!0,t.Ni=e),t},d.prototype.endAt=function(o,e){var t=this.Ti();return t.vi=!0,void 0===o&&(o=null),t.Pi=o,void 0===e?(t.gi=!1,t.bi=''):(t.gi=!0,t.bi=e),t},d.prototype.orderBy=function(n){var e=this.Ti();return e.me=n,e},d.prototype.getQueryObject=function(){var e=d.Si,t={};if(this._i&&(t[e.INDEX_START_VALUE]=this.Ei,this.yi&&(t[e.INDEX_START_NAME]=this.Ni)),this.vi&&(t[e.INDEX_END_VALUE]=this.Pi,this.gi&&(t[e.INDEX_END_NAME]=this.bi)),this.fi){t[e.LIMIT]=this.mi;var n=this.Ci;''===n&&(n=this.isViewFromLeft()?e.VIEW_FROM_LEFT:e.VIEW_FROM_RIGHT),t[e.VIEW_FROM]=n}return this.me!==o.PRIORITY_INDEX&&(t[e.INDEX]=''+this.me),t},d.prototype.loadsAllData=function(){return!(this._i||this.vi||this.fi)},d.prototype.isDefault=function(){return this.loadsAllData()&&this.me==o.PRIORITY_INDEX},d.prototype.getNodeFilter=function(){return this.loadsAllData()?new i.IndexedFilter(this.getIndex()):this.hasLimit()?new l.LimitedFilter(this):new u.RangedFilter(this)},d.prototype.toRestQueryStringParameters=function(){var e=d.wi,t={};if(this.isDefault())return t;var n;return this.me===o.PRIORITY_INDEX?n=e.PRIORITY_INDEX:this.me===a.VALUE_INDEX?n=e.VALUE_INDEX:this.me===r.KEY_INDEX?n=e.KEY_INDEX:(g.assert(this.me instanceof s.PathIndex,'Unrecognized index type!'),n=''+this.me),t[e.ORDER_BY]=c.stringify(n),this._i&&(t[e.START_AT]=c.stringify(this.Ei),this.yi&&(t[e.START_AT]+=','+c.stringify(this.Ni))),this.vi&&(t[e.END_AT]=c.stringify(this.Pi),this.gi&&(t[e.END_AT]+=','+c.stringify(this.bi))),this.fi&&(this.isViewFromLeft()?t[e.LIMIT_TO_FIRST]=this.mi:t[e.LIMIT_TO_LAST]=this.mi),t},d.Si={INDEX_START_VALUE:'sp',INDEX_START_NAME:'sn',INDEX_END_VALUE:'ep',INDEX_END_NAME:'en',LIMIT:'l',VIEW_FROM:'vf',VIEW_FROM_LEFT:'l',VIEW_FROM_RIGHT:'r',INDEX:'i'},d.wi={ORDER_BY:'orderBy',PRIORITY_INDEX:'$priority',VALUE_INDEX:'$value',KEY_INDEX:'$key',START_AT:'startAt',END_AT:'endAt',LIMIT_TO_FIRST:'limitToFirst',LIMIT_TO_LAST:'limitToLast'},d.DEFAULT=new d,d}();e.QueryParams=p},function(d,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var n=t(56),m=t(4),i=t(5),o=t(0),a=t(9),r=function(){function t(t){this.Ii=new n.RangedFilter(t),this.me=t.getIndex(),this.mi=t.getLimit(),this.Ri=!t.isViewFromLeft()}return t.prototype.updateChild=function(o,e,t,n,r,a){return this.Ii.matches(new i.NamedNode(e,t))||(t=m.ChildrenNode.EMPTY_NODE),o.getImmediateChild(e).equals(t)?o:o.numChildren()=this.me.compare(this.Ii.getStartPost(),a):0>=this.me.compare(a,this.Ii.getEndPost())))break;n=n.updateImmediateChild(a.name,a.node),o++}}else{n=e.withIndex(this.me),n=n.updatePriority(m.ChildrenNode.EMPTY_NODE);var r=void 0,u,l,h;if(this.Ri){r=n.getReverseIterator(this.me),u=this.Ii.getEndPost(),l=this.Ii.getStartPost();var c=this.me.getCompare();h=function(n,e){return c(e,n)}}else r=n.getIterator(this.me),u=this.Ii.getStartPost(),l=this.Ii.getEndPost(),h=this.me.getCompare();for(var o=0,p=!1,a;r.hasNext();){a=r.getNext(),!p&&0>=h(u,a)&&(p=!0);var s=p&&o=h(a,l);s?o++:n=n.updateImmediateChild(a.name,m.ChildrenNode.EMPTY_NODE)}}return this.Ii.getIndexedFilter().updateFullNode(i,n,t)},t.prototype.updatePriority=function(t){return t},t.prototype.filtersNodes=function(){return!0},t.prototype.getIndexedFilter=function(){return this.Ii.getIndexedFilter()},t.prototype.getIndex=function(){return this.me},t.prototype.Oi=function(s,e,t,n,r){var u;if(this.Ri){var l=this.me.getCompare();u=function(n,e){return l(e,n)}}else u=this.me.getCompare();var h=s;o.assert(h.numChildren()==this.mi,'');var c=new i.NamedNode(e,t),p=this.Ri?h.getFirstChild(this.me):h.getLastChild(this.me),d=this.Ii.matches(c);if(h.hasChild(e)){for(var f=h.getImmediateChild(e),b=n.getChildAfterChild(this.me,p,this.Ri);null!=b&&(b.name==e||h.hasChild(b.name));)b=n.getChildAfterChild(this.me,b,this.Ri);var y=null==b?1:u(b,c);if(d&&!t.isEmpty()&&0<=y)return null!=r&&r.trackChildChange(a.Change.childChangedChange(e,t,f)),h.updateImmediateChild(e,t);null!=r&&r.trackChildChange(a.Change.childRemovedChange(e,f));var v=h.updateImmediateChild(e,m.ChildrenNode.EMPTY_NODE);return null!=b&&this.Ii.matches(b)?(null!=r&&r.trackChildChange(a.Change.childAddedChange(b.name,b.node)),v.updateImmediateChild(b.name,b.node)):v}return t.isEmpty()?s:d&&0<=u(p,c)?(null!=r&&(r.trackChildChange(a.Change.childRemovedChange(p.name,p.node)),r.trackChildChange(a.Change.childAddedChange(e,t))),h.updateImmediateChild(e,t).updateImmediateChild(p.name,m.ChildrenNode.EMPTY_NODE)):s},t}();e.LimitedFilter=r},function(m,e,t){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var x=t(0),i=t(21),o=t(22),a=t(2),n=t(110),s=t(3),l=t(1),h=t(43),c=t(7),p=t(0),d=t(11),u=t(4),f=t(18),k;!function(t){t[t.RUN=0]='RUN',t[t.SENT=1]='SENT',t[t.COMPLETED=2]='COMPLETED',t[t.SENT_NEEDS_ABORT=3]='SENT_NEEDS_ABORT',t[t.NEEDS_ABORT=4]='NEEDS_ABORT'}(k=e.TransactionStatus||(e.TransactionStatus={})),f.Repo.Ai=25,f.Repo.prototype.ie=function(){this.Di=new n.Tree},f.Repo.prototype.startTransaction=function(r,a,f,v){this.de('transaction on '+r);var A=function(){},L=new i.Reference(this,r);L.on('value',A);var y={path:r,update:a,onComplete:f,status:null,order:l.LUIDGenerator(),applyLocally:v,retryCount:0,unwatcher:function(){L.off('value',A)},abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},g=this.Mi(r);y.currentInputSnapshot=g;var m=y.update(g.val());if(!(void 0===m)){c.validateFirebaseData('transaction failed: Data returned ',m,y.path),y.status=k.RUN;var R=this.Di.subTree(r),N=R.getValue()||[];N.push(y),R.setValue(N);var O;'object'==typeof m&&null!==m&&p.contains(m,'.priority')?(O=p.safeGet(m,'.priority'),x.assert(c.isValidPriority(O),'Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.')):O=(this.ue.calcCompleteEventCache(r)||u.ChildrenNode.EMPTY_NODE).getPriority().val(),O=O;var b=this.generateServerValues(),S=d.nodeFromJSON(m,O),T=h.resolveDeferredValueSnapshot(S,b);y.currentOutputSnapshotRaw=S,y.currentOutputSnapshotResolved=T,y.currentWriteId=this.pe();var w=this.ue.applyUserOverwrite(r,T,y.currentWriteId,y.applyLocally);this.K.raiseEventsForChangedPath(r,w),this.Li()}else if(y.unwatcher(),y.currentOutputSnapshotRaw=null,y.currentOutputSnapshotResolved=null,y.onComplete){var I=new o.DataSnapshot(y.currentInputSnapshot,new i.Reference(this,y.path),s.PRIORITY_INDEX);y.onComplete(null,!1,I)}},f.Repo.prototype.Mi=function(n,e){return this.ue.calcCompleteEventCache(n,e)||u.ChildrenNode.EMPTY_NODE},f.Repo.prototype.Li=function(o){var r=this;if(void 0===o&&(o=this.Di),o||this.Fi(o),null!==o.getValue()){var e=this.xi(o);x.assert(0=f.Repo.Ai)C=!0,E='maxretry',n=n.concat(this.ue.ackUserWrite(g.currentWriteId,!0));else{var N=this.Mi(g.path,y);g.currentInputSnapshot=N;var L=r[v].update(N.val());if(void 0!==L){c.validateFirebaseData('transaction failed: Data returned ',L,g.path);var P=d.nodeFromJSON(L),S='object'==typeof L&&null!=L&&p.contains(L,'.priority');S||(P=P.updatePriority(N.getPriority()));var T=g.currentWriteId,w=this.generateServerValues(),I=h.resolveDeferredValueSnapshot(P,w);g.currentOutputSnapshotRaw=P,g.currentOutputSnapshotResolved=I,g.currentWriteId=this.pe(),y.splice(y.indexOf(T),1),n=n.concat(this.ue.applyUserOverwrite(g.path,I,g.currentWriteId,g.applyLocally)),n=n.concat(this.ue.ackUserWrite(T,!0))}else C=!0,E='nodata',n=n.concat(this.ue.ackUserWrite(g.currentWriteId,!0))}if(this.K.raiseEventsForChangedPath(e,n),n=[],C&&(r[v].status=k.COMPLETED,function(t){setTimeout(t,0)}(r[v].unwatcher),r[v].onComplete))if('nodata'===E){var R=new i.Reference(this,r[v].path),O=r[v].currentInputSnapshot,A=new o.DataSnapshot(O,R,s.PRIORITY_INDEX);t.push(r[v].onComplete.bind(null,null,!1,A))}else t.push(r[v].onComplete.bind(null,Error(E),!1,null))}this.Fi(this.Di);for(var v=0;v=n)t.push(n);else if(2047>=n)t.push(192|n>>6,128|63&n);else if(55296==(64512&n)){var r=e>18,128|63&n>>12,128|63&n>>6,128|63&n)}else t.push(239,191,189)}else 56320==(64512&n)?t.push(239,191,189):t.push(224|n>>12,128|63&n>>6,128|63&n);return new Uint8Array(t)}function w(n){var t;try{t=decodeURIComponent(n)}catch(e){throw g(ee.DATA_URL,'Malformed data URL.')}return E(t)}function T(d,t){switch(d){case ee.BASE64:var e=-1!==t.indexOf('-'),n=-1!==t.indexOf('_');if(e||n){var r=e?'-':'_';throw g(d,'Invalid character \''+r+'\' found: is it base64url encoded?')}break;case ee.BASE64URL:var o=-1!==t.indexOf('+'),i=-1!==t.indexOf('/');if(o||i){var r=o?'+':'/';throw g(d,'Invalid character \''+r+'\' found: is it base64 encoded?')}t=t.replace(/-/g,'+').replace(/_/g,'/');}var a;try{a=atob(t)}catch(t){throw g(d,'Invalid character found')}for(var s=new Uint8Array(a.length),l=0;l=t.length)&&n.substring(n.length-t.length)===t}function C(e){switch(e){case It.RUNNING:case It.PAUSING:case It.CANCELING:return ae.RUNNING;case It.PAUSED:return ae.PAUSED;case It.SUCCESS:return ae.SUCCESS;case It.CANCELED:return ae.CANCELED;case It.ERROR:default:return ae.ERROR;}}function S(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function k(o,t){for(var e in o)S(o,e)&&t(e,o[e])}function I(n){if(null==n)return{};var o={};return k(n,function(e,t){o[e]=t}),o}function L(e){return new Promise(e)}function O(e){return Promise.resolve(e)}function x(e){return Promise.reject(e)}function P(e){return null!=e}function D(e){return void 0!==e}function _(e){return'function'==typeof e}function M(e){return'object'==typeof e}function B(e){return M(e)&&null!==e}function U(e){return M(e)&&!Array.isArray(e)}function W(e){return'string'==typeof e||e instanceof String}function F(e){return'number'==typeof e||e instanceof Number}function H(e){return q()&&e instanceof Blob}function q(){return'undefined'!=typeof Blob}function j(n){var t;try{t=JSON.parse(n)}catch(e){return null}return U(t)?t:null}function V(n){if(0==n.length)return null;var t=n.lastIndexOf('/');return-1===t?'':n.slice(0,t)}function z(o,t){var e=t.split('/').filter(function(e){return 0e.length?e:(e=e,K(e))}function Z(){function a(n,o){return $(o)}function t(n,t){return P(t)?+t:t}function e(a,t){if(!(W(t)&&0t;t++)n+=(''+Math.random()).slice(2);return n}();i['Content-Type']='multipart/related; boundary='+a;var s=it(t,n,r),u=De(s,e),c='--'+a+'\r\nContent-Type: application/json; charset=utf-8\r\n\r\n'+u+'\r\n--'+a+'\r\nContent-Type: '+s.contentType+'\r\n\r\n',l=fe.getBlob(c,n,'\r\n--'+a+'--');if(null===l)throw ke();var p={name:s.fullPath},d=Q(o),m=h.maxUploadRetryTime(),g=new de(d,'POST',Ze(h,e),m);return g.urlParams=p,g.headers=i,g.body=l.uploadData(),g.errorHandler=et(t),g}function dt(o,t){var e;try{e=o.getResponseHeader('X-Goog-Upload-Status')}catch(e){$e(!1)}return $e(Qe(t||['active'],e)),e}function lt(i,t,e,n,r){var o=t.bucketOnlyServerUrl(),a=it(t,n,r),s={name:a.fullPath},d=Q(o),c={"X-Goog-Upload-Protocol":'resumable',"X-Goog-Upload-Command":'start',"X-Goog-Upload-Header-Content-Length":n.size(),"X-Goog-Upload-Header-Content-Type":a.contentType,"Content-Type":'application/json; charset=utf-8'},l=De(a,e),u=i.maxUploadRetryTime(),p=new de(d,'POST',function(e){dt(e);var t;try{t=e.getResponseHeader('X-Goog-Upload-URL')}catch(e){$e(!1)}return $e(W(t)),t},u);return p.urlParams=s,p.headers=c,p.body=l,p.errorHandler=et(t),p}function pt(i,t,e,d){function n(e){var t=dt(e,['active','final']),r;try{r=e.getResponseHeader('X-Goog-Upload-Size-Received')}catch(e){$e(!1)}var n=parseInt(r,10);return $e(!isNaN(n)),new _e(n,d.size(),'final'===t)}var o=i.maxUploadRetryTime(),r=new de(e,'POST',n,o);return r.headers={"X-Goog-Upload-Command":'query'},r.errorHandler=et(t),r}function ct(d,x,e,C,t,r,n,o){function a(e,t){var n=dt(e,['active','final']),a=i.current+l,s=C.size(),d;return d='final'===n?Ze(x,r)(e,t):null,new _e(a,s,'final'===n,d)}var i=new _e(0,0);if(n?(i.current=n.current,i.total=n.total):(i.current=0,i.total=C.size()),C.size()!==i.total)throw f();var s=i.total-i.current,l=s;0s&&(s*=2);var d;1===l?(l=2,d=0):d=1e3*(s+Math.random()),o(d)}}function a(e){m||(m=!0,h||(null===u?e||(l=1):(e||(l=2),clearTimeout(u),o(0))))}var s=1,u=null,c=!1,l=0,h=!1,m=!1;return o(0),setTimeout(function(){c=!0,a(!0)},e),a}function mt(e){e(!1)}function gt(n,t){null!==t&&0][;base64],');var e=r[1]||null;null!=e&&(this.base64=R(e,';base64'),this.contentType=this.base64?e.substring(0,e.length-7):e),this.rest=o.substring(o.indexOf(',')+1)}return e}(),oe={STATE_CHANGED:'state_changed'},It={RUNNING:'running',PAUSING:'pausing',PAUSED:'paused',SUCCESS:'success',CANCELING:'canceling',CANCELED:'canceled',ERROR:'error'},ae={RUNNING:'running',PAUSED:'paused',SUCCESS:'success',CANCELED:'canceled',ERROR:'error'},Nt;!function(e){e[e.NO_ERROR=0]='NO_ERROR',e[e.NETWORK_ERROR=1]='NETWORK_ERROR',e[e.ABORT=2]='ABORT'}(Nt||(Nt={}));var At=function(){function e(){var n=this;this.o=!1,this.i=new XMLHttpRequest,this.a=Nt.NO_ERROR,this.s=L(function(t){n.i.addEventListener('abort',function(){n.a=Nt.ABORT,t(n)}),n.i.addEventListener('error',function(){n.a=Nt.NETWORK_ERROR,t(n)}),n.i.addEventListener('load',function(){t(n)})})}return e.prototype.send=function(a,t,e,n){var r=this;if(this.o)throw y('cannot .send() more than once');return this.o=!0,this.i.open(t,a,!0),P(n)&&k(n,function(n,t){r.i.setRequestHeader(n,''+t)}),P(e)?this.i.send(e):this.i.send(),this.s},e.prototype.getErrorCode=function(){if(!this.o)throw y('cannot .getErrorCode() before sending');return this.a},e.prototype.getStatus=function(){if(!this.o)throw y('cannot .getStatus() before sending');try{return this.i.status}catch(e){return-1}},e.prototype.getResponseText=function(){if(!this.o)throw y('cannot .getResponseText() before sending');return this.i.responseText},e.prototype.abort=function(){this.i.abort()},e.prototype.getResponseHeader=function(e){return this.i.getResponseHeader(e)},e.prototype.addUploadProgressListener=function(e){P(this.i.upload)&&this.i.upload.addEventListener('progress',e)},e.prototype.removeUploadProgressListener=function(e){P(this.i.upload)&&this.i.upload.removeEventListener('progress',e)},e}(),ue=function(){function e(){}return e.prototype.createXhrIo=function(){return new At},e}(),ce=function(){function r(n,o){this.bucket=n,this.u=o}return Object.defineProperty(r.prototype,'path',{get:function(){return this.u},enumerable:!0,configurable:!0}),r.prototype.fullServerUrl=function(){var e=encodeURIComponent;return'/b/'+e(this.bucket)+'/o/'+e(this.path)},r.prototype.bucketOnlyServerUrl=function(){return'/b/'+encodeURIComponent(this.bucket)+'/o'},r.makeFromBucketSpec=function(t){var e;try{e=r.makeFromUrl(t)}catch(e){return new r(t,'')}if(''===e.path)return e;throw l(t)},r.makeFromUrl=function(t){function e(e){'/'===e.path.charAt(e.path.length-1)&&(e.u=e.u.slice(0,-1))}function h(e){e.u=decodeURIComponent(e.path)}for(var m=null,o=/^gs:\/\/([A-Za-z0-9.\-]+)(\/(.*))?$/i,g={bucket:1,path:3},y=/^https?:\/\/firebasestorage\.googleapis\.com\/v[A-Za-z0-9_]+\/b\/([A-Za-z0-9.\-]+)\/o(\/([^?#]*).*)?$/i,b={bucket:1,path:3},v=[{regex:o,indices:g,postModify:e},{regex:y,indices:b,postModify:h}],c=0;c262144*this.g&&(this.g*=2)},e.prototype.q=function(){var o=this;this.z(function(t){var e=nt(o.U,o.T,o.O),n=o.U.makeRequest(e,t);o.m=n,n.getPromise().then(function(t){o.m=null,o.N=t,o.P(It.SUCCESS)},o.x)})},e.prototype.H=function(){var o=this;this.z(function(t){var e=st(o.U,o.T,o.O,o.A,o.N),n=o.U.makeRequest(e,t);o.m=n,n.getPromise().then(function(t){o.m=null,o.N=t,o.B(o.A.size()),o.P(It.SUCCESS)},o.I)})},e.prototype.B=function(n){var t=this.p;this.p=n,this.p!==t&&this.V()},e.prototype.P=function(n){if(this.k!==n)switch(n){case It.CANCELING:case It.PAUSING:this.k=n,null!==this.m&&this.m.cancel();break;case It.RUNNING:var t=this.k===It.PAUSED;this.k=n,t&&(this.V(),this.M());break;case It.PAUSED:this.k=n,this.V();break;case It.CANCELED:this.v=c(),this.k=n,this.V();break;case It.ERROR:case It.SUCCESS:this.k=n,this.V();}},e.prototype.L=function(){switch(this.k){case It.PAUSING:this.P(It.PAUSED);break;case It.CANCELING:this.P(It.CANCELED);break;case It.RUNNING:this.M();}},Object.defineProperty(e.prototype,'snapshot',{get:function(){var e=C(this.k);return new be(this.p,this.A.size(),e,this.N,this,this.w)},enumerable:!0,configurable:!0}),e.prototype.on=function(o,t,e,s){function n(e){try{return void i(e)}catch(e){}try{if(d(e),!(D(e.next)||D(e.error)||D(e.complete)))throw''}catch(e){throw a}}function r(o){function t(t,r){null!==o&&Fe('on',o,arguments);var n=new ve(t,r,s);return l.K(n),function(){l.Z(n)}}return t}void 0===t&&(t=void 0),void 0===e&&(e=void 0),void 0===s&&(s=void 0);var a='Expected a function or an Object with one of `next`, `error`, `complete` properties.',i=ze(!0).validator,d=je(null,!0).validator;Fe('on',[Ve(function(){if(o!==oe.STATE_CHANGED)throw'Expected one of the event types: ['+oe.STATE_CHANGED+'].'}),je(n,!0),ze(!0),ze(!0)],arguments);var l=this,c=[je(function(e){if(null===e)throw a;n(e)}),ze(!0),ze(!0)];return D(t)||D(e)||D(s)?r(null)(t,e,s):r(c)},e.prototype.then=function(n,t){return this.D.then(n,t)},e.prototype.catch=function(e){return this.then(null,e)},e.prototype.K=function(e){this._.push(e),this.J(e)},e.prototype.Z=function(e){Je(this._,e)},e.prototype.V=function(){var n=this;this.Q(),Ye(this._).forEach(function(t){n.J(t)})},e.prototype.Q=function(){if(null!==this.y){var e=!0;switch(C(this.k)){case ae.SUCCESS:ut(this.y.bind(null,this.snapshot))();break;case ae.CANCELED:case ae.ERROR:ut(this.R.bind(null,this.v))();break;default:e=!1;}e&&(this.y=null,this.R=null)}},e.prototype.J=function(e){switch(C(this.k)){case ae.RUNNING:case ae.PAUSED:null!==e.next&&ut(e.next.bind(e,this.snapshot))();break;case ae.SUCCESS:null!==e.complete&&ut(e.complete.bind(e))();break;case ae.CANCELED:case ae.ERROR:null!==e.error&&ut(e.error.bind(e,this.v))();break;default:null!==e.error&&ut(e.error.bind(e,this.v))();}},e.prototype.resume=function(){Fe('resume',[],arguments);var e=this.k===It.PAUSED||this.k===It.PAUSING;return e&&this.P(It.RUNNING),e},e.prototype.pause=function(){Fe('pause',[],arguments);var e=this.k===It.RUNNING;return e&&this.P(It.PAUSING),e},e.prototype.cancel=function(){Fe('cancel',[],arguments);var e=this.k===It.RUNNING||this.k===It.PAUSING;return e&&this.P(It.CANCELING),e},e}(),ge=function(){function o(n,o){this.authWrapper=n,this.location=o instanceof ce?o:ce.makeFromUrl(o)}return o.prototype.toString=function(){return Fe('toString',[],arguments),'gs://'+this.location.bucket+'/'+this.location.path},o.prototype.newRef=function(t,e){return new o(t,e)},o.prototype.mappings=function(){return Z()},o.prototype.child=function(o){Fe('child',[Ve()],arguments);var t=z(this.location.path,o),e=new ce(this.location.bucket,t);return this.newRef(this.authWrapper,e)},Object.defineProperty(o.prototype,'parent',{get:function(){var n=V(this.location.path);if(null===n)return null;var t=new ce(this.location.bucket,n);return this.newRef(this.authWrapper,t)},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,'root',{get:function(){var e=new ce(this.location.bucket,'');return this.newRef(this.authWrapper,e)},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,'bucket',{get:function(){return this.location.bucket},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,'fullPath',{get:function(){return this.location.path},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,'name',{get:function(){return K(this.location.path)},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,'storage',{get:function(){return this.authWrapper.service()},enumerable:!0,configurable:!0}),o.prototype.put=function(n,t){return void 0===t&&(t=null),Fe('put',[We(),He(!0)],arguments),this.Y('put'),new me(this,this.authWrapper,this.location,this.mappings(),new fe(n),t)},o.prototype.putString=function(a,t,e){void 0===t&&(t=ee.RAW),Fe('putString',[Ve(),Ve(b,!0),He(!0)],arguments),this.Y('putString');var n=v(t,a),r=I(e);return!P(r.contentType)&&P(n.contentType)&&(r.contentType=n.contentType),new me(this,this.authWrapper,this.location,this.mappings(),new fe(n.data,!0),r)},o.prototype.delete=function(){Fe('delete',[],arguments),this.Y('delete');var o=this;return this.authWrapper.getAuthToken().then(function(t){var e=rt(o.authWrapper,o.location);return o.authWrapper.makeRequest(e,t).getPromise()})},o.prototype.getMetadata=function(){Fe('getMetadata',[],arguments),this.Y('getMetadata');var o=this;return this.authWrapper.getAuthToken().then(function(t){var e=nt(o.authWrapper,o.location,o.mappings());return o.authWrapper.makeRequest(e,t).getPromise()})},o.prototype.updateMetadata=function(o){Fe('updateMetadata',[He()],arguments),this.Y('updateMetadata');var t=this;return this.authWrapper.getAuthToken().then(function(e){var n=ot(t.authWrapper,t.location,o,t.mappings());return t.authWrapper.makeRequest(n,e).getPromise()})},o.prototype.getDownloadURL=function(){return Fe('getDownloadURL',[],arguments),this.Y('getDownloadURL'),this.getMetadata().then(function(n){var t=n.downloadURLs[0];if(P(t))return t;throw d()})},o.prototype.Y=function(e){if(''===this.location.path)throw m(e)},o}(),Lt=function(){function e(e){this.D=x(e)}return e.prototype.getPromise=function(){return this.D},e.prototype.cancel=function(e){void 0===e&&(e=!1)},e}(),Re=function(){function e(){this.$={},this.tt=-9007199254740991}return e.prototype.addRequest=function(o){function t(){delete n.$[e]}var e=this.tt;this.tt++,this.$[e]=o;var n=this;o.getPromise().then(t,t)},e.prototype.clear=function(){k(this.$,function(n,t){t&&t.cancel(!0)}),this.$={}},e}(),Ee=function(){function e(t,s,n,r,o){if(this.et=null,this.nt=!1,this.rt=t,null!==this.rt){var i=this.rt.options;P(i)&&(this.et=e.ot(i))}this.it=s,this.at=n,this.st=o,this.ut=r,this.ct=12e4,this.lt=6e4,this.ht=new Re}return e.ot=function(n){var t=n.storageBucket||null;return null==t?null:ce.makeFromBucketSpec(t).bucket},e.prototype.getAuthToken=function(){return null!==this.rt&&P(this.rt.INTERNAL)&&P(this.rt.INTERNAL.getToken)?this.rt.INTERNAL.getToken().then(function(e){return null===e?null:e.accessToken},function(){return null}):O(null)},e.prototype.bucket=function(){if(this.nt)throw h();return this.et},e.prototype.service=function(){return this.ut},e.prototype.makeStorageReference=function(e){return this.it(this,e)},e.prototype.makeRequest=function(o,t){if(this.nt)return new Lt(h());var e=this.at(o,t,this.st);return this.ht.addRequest(e),e},e.prototype.deleteApp=function(){this.nt=!0,this.rt=null,this.ht.clear()},e.prototype.maxUploadRetryTime=function(){return this.lt},e.prototype.setMaxUploadRetryTime=function(e){this.lt=e},e.prototype.maxOperationRetryTime=function(){return this.ct},e.prototype.setMaxOperationRetryTime=function(e){this.ct=e},e}(),we=function(){function e(d,p,e,n,r,o,i,a,s,u,c){this.pt=null,this.ft=null,this.y=null,this.R=null,this.dt=!1,this._t=!1,this.vt=d,this.bt=p,this.mt=e,this.gt=n,this.yt=r.slice(),this.Rt=o.slice(),this.Et=i,this.wt=a,this.Ut=u,this.Tt=s,this.st=c;var l=this;this.D=L(function(n,t){l.y=n,l.R=t,l.M()})}return e.prototype.M=function(){function o(n,a){function l(n){var t=n.loaded,e=n.lengthComputable?n.total:-1;null!==d.Ut&&d.Ut(t,e)}if(a)return void n(!1,new Ue(!1,null,!0));var e=d.st.createXhrIo();d.pt=e,null!==d.Ut&&e.addUploadProgressListener(l),e.send(d.vt,d.bt,d.gt,d.mt).then(function(t){null!==d.Ut&&t.removeUploadProgressListener(l),d.pt=null,t=t;var e=t.getErrorCode()===Nt.NO_ERROR,r=t.getStatus();if(!e||d.At(r)){var i=t.getErrorCode()===Nt.ABORT;return void n(!1,new Ue(!1,null,i))}var a=Qe(d.yt,r);n(!0,new Ue(a,t))})}function t(n,t){var o=d.y,l=d.R,i=t.xhr;if(t.wasSuccessCode)try{var a=d.Et(i,i.getResponseText());D(a)?o(a):o()}catch(e){l(e)}else if(null!==i){var p=r();p.setServerResponseProp(i.getResponseText()),l(d.wt?d.wt(i,p):p)}else if(t.canceled){var p=d._t?h():c();l(p)}else{var p=s();l(p)}}var d=this;this.dt?t(!1,new Ue(!1,null,!0)):this.ft=ht(o,t,this.Tt)},e.prototype.getPromise=function(){return this.D},e.prototype.cancel=function(e){this.dt=!0,this._t=e||!1,null!==this.ft&&mt(this.ft),null!==this.pt&&this.pt.abort()},e.prototype.At=function(e){var t=Qe([408,429],e),n=Qe(this.Rt,e);return 500<=e&&600>e||t||n},e}(),Ue=function(){function e(o,r,e){this.wasSuccessCode=o,this.xhr=r,this.canceled=!!e}return e}(),Te=function(){function e(r,a,e){if(this.et=null,this.U=new Ee(r,function(n,t){return new ge(n,t)},yt,this,a),this.rt=r,null!=e)this.et=ce.makeFromBucketSpec(e);else{var n=this.U.bucket();null!=n&&(this.et=new ce(n,''))}this.Nt=new Rt(this)}return e.prototype.ref=function(e){if(Fe('ref',[Ve(function(e){if(/^[A-Za-z]+:\/\//.test(e))throw'Expected child path but got a URL, use refFromURL instead.'},!0)],arguments),null==this.et)throw Error('No Storage Bucket defined in Firebase Options.');var t=new ge(this.U,this.et);return null==e?t:t.child(e)},e.prototype.refFromURL=function(e){return Fe('refFromURL',[Ve(function(e){if(!/^[A-Za-z]+:\/\//.test(e))throw'Expected full URL but got a child path, use ref instead.';try{ce.makeFromUrl(e)}catch(e){throw'Expected valid full URL but got an invalid one.'}},!1)],arguments),new ge(this.U,e)},Object.defineProperty(e.prototype,'maxUploadRetryTime',{get:function(){return this.U.maxUploadRetryTime()},enumerable:!0,configurable:!0}),e.prototype.setMaxUploadRetryTime=function(e){Fe('setMaxUploadRetryTime',[qe()],arguments),this.U.setMaxUploadRetryTime(e)},Object.defineProperty(e.prototype,'maxOperationRetryTime',{get:function(){return this.U.maxOperationRetryTime()},enumerable:!0,configurable:!0}),e.prototype.setMaxOperationRetryTime=function(e){Fe('setMaxOperationRetryTime',[qe()],arguments),this.U.setMaxOperationRetryTime(e)},Object.defineProperty(e.prototype,'app',{get:function(){return this.rt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,'INTERNAL',{get:function(){return this.Nt},enumerable:!0,configurable:!0}),e}(),Rt=function(){function e(e){this.ut=e}return e.prototype.delete=function(){return this.ut.U.deleteApp(),O(void 0)},e}();t.registerStorage=vt;var Ne='storage';vt(xt.default)}},[118])}catch(e){throw Error('Cannot instantiate firebase-storage.js - be sure to load firebase-app.js first.')}try{webpackJsonpFirebase([1],{113:function(o,t,e){e(114)},114:function(Mn,t,e){'use strict';function n(){return qt}function r(e){qt=e}function So(s,t){for(var e=[],n=2;nn)throw new Ht(Gt.INVALID_ARGUMENT,'Function '+o+'() requires between '+e+' and '+n+' arguments, but was called with '+O(t.length,'argument')+'.')}function y(o,t,e,n){if(!(t instanceof Array)||t.lengthr.indexOf(t))throw new Ht(Gt.INVALID_ARGUMENT,'Unknown option \''+t+'\' passed to function '+o+'(). Available options: '+r.join(', '))})}function A(a,t,e,n){var r=k(n);return new Ht(Gt.INVALID_ARGUMENT,'Function '+a+'() requires its '+R(e)+' argument to be a '+t+', but it was: '+r)}function R(e){return 1===e?'first':2===e?'second':3===e?'third':e+'th'}function O(n,t){return n+' '+t+(1===n?'':'s')}function P(n,t){return nt?1:0}function L(n,t){return null!==n&&void 0!==n?t&&n.equals(t):n===t}function x(o,t){if(o.length!==t.length)return!1;for(var e=0;et?1:n===t?0:isNaN(n)?isNaN(t)?0:-1:1}function U(n,t){return n===t?0!==n||1/n==1/t:n!==n&&t!==t}function V(e){return null===e||void 0===e}function q(e){return _e(e)&&e<=Me&&e>=Oe}function W(o,t,e){if(e.equals(ge.INSTANCE)){if(t!==Le.EQUAL)throw new Ht(Gt.INVALID_ARGUMENT,'Invalid query. You can only perform equals comparisons on null.');return new Be(o)}if(e.equals(Ie.NAN)){if(t!==Le.EQUAL)throw new Ht(Gt.INVALID_ARGUMENT,'Invalid query. You can only perform equals comparisons on NaN.');return new Ue(o)}return new xe(o,t,e)}function j(e){return e===Gt.OK?Wo('Treated status OK as error'):e===Gt.CANCELLED||e===Gt.UNKNOWN||e===Gt.DEADLINE_EXCEEDED||e===Gt.RESOURCE_EXHAUSTED||e===Gt.INTERNAL||e===Gt.UNAVAILABLE||e===Gt.UNAUTHENTICATED?!1:e===Gt.INVALID_ARGUMENT||e===Gt.NOT_FOUND||e===Gt.ALREADY_EXISTS||e===Gt.PERMISSION_DENIED||e===Gt.FAILED_PRECONDITION||e===Gt.ABORTED||e===Gt.OUT_OF_RANGE||e===Gt.UNIMPLEMENTED||e===Gt.DATA_LOSS||Wo('Unknown status code: '+e)}function H(n){var t=cn[n];if(void 0!==t)return z(t)}function z(e){if(void 0===e)return o('GRPC error has no .code'),Gt.UNKNOWN;return e===cn.OK?Gt.OK:e===cn.CANCELLED?Gt.CANCELLED:e===cn.UNKNOWN?Gt.UNKNOWN:e===cn.DEADLINE_EXCEEDED?Gt.DEADLINE_EXCEEDED:e===cn.RESOURCE_EXHAUSTED?Gt.RESOURCE_EXHAUSTED:e===cn.INTERNAL?Gt.INTERNAL:e===cn.UNAVAILABLE?Gt.UNAVAILABLE:e===cn.UNAUTHENTICATED?Gt.UNAUTHENTICATED:e===cn.INVALID_ARGUMENT?Gt.INVALID_ARGUMENT:e===cn.NOT_FOUND?Gt.NOT_FOUND:e===cn.ALREADY_EXISTS?Gt.ALREADY_EXISTS:e===cn.PERMISSION_DENIED?Gt.PERMISSION_DENIED:e===cn.FAILED_PRECONDITION?Gt.FAILED_PRECONDITION:e===cn.ABORTED?Gt.ABORTED:e===cn.OUT_OF_RANGE?Gt.OUT_OF_RANGE:e===cn.UNIMPLEMENTED?Gt.UNIMPLEMENTED:e===cn.DATA_LOSS?Gt.DATA_LOSS:Wo('Unknown status code: '+e)}function K(e){if(void 0===e)return cn.OK;return e===Gt.OK?cn.OK:e===Gt.CANCELLED?cn.CANCELLED:e===Gt.UNKNOWN?cn.UNKNOWN:e===Gt.DEADLINE_EXCEEDED?cn.DEADLINE_EXCEEDED:e===Gt.RESOURCE_EXHAUSTED?cn.RESOURCE_EXHAUSTED:e===Gt.INTERNAL?cn.INTERNAL:e===Gt.UNAVAILABLE?cn.UNAVAILABLE:e===Gt.UNAUTHENTICATED?cn.UNAUTHENTICATED:e===Gt.INVALID_ARGUMENT?cn.INVALID_ARGUMENT:e===Gt.NOT_FOUND?cn.NOT_FOUND:e===Gt.ALREADY_EXISTS?cn.ALREADY_EXISTS:e===Gt.PERMISSION_DENIED?cn.PERMISSION_DENIED:e===Gt.FAILED_PRECONDITION?cn.FAILED_PRECONDITION:e===Gt.ABORTED?cn.ABORTED:e===Gt.OUT_OF_RANGE?cn.OUT_OF_RANGE:e===Gt.UNIMPLEMENTED?cn.UNIMPLEMENTED:e===Gt.DATA_LOSS?cn.DATA_LOSS:Wo('Unknown status code: '+e)}function G(e){return 200===e?Gt.OK:400===e?Gt.INVALID_ARGUMENT:401===e?Gt.UNAUTHENTICATED:403===e?Gt.PERMISSION_DENIED:404===e?Gt.NOT_FOUND:409===e?Gt.ABORTED:416===e?Gt.OUT_OF_RANGE:429===e?Gt.RESOURCE_EXHAUSTED:499===e?Gt.CANCELLED:500===e?Gt.UNKNOWN:501===e?Gt.UNIMPLEMENTED:503===e?Gt.UNAVAILABLE:504===e?Gt.DEADLINE_EXCEEDED:200<=e&&300>e?Gt.OK:400<=e&&500>e?Gt.FAILED_PRECONDITION:500<=e&&600>e?Gt.INTERNAL:Gt.UNKNOWN}function X(){return ln}function Q(){return fn}function Y(){return dn}function J(){return pn}function $(n,t){0i||i>t-2)&&Wo('Invalid encoded resource path: "'+n+'"'),n.charAt(i+1)){case ir:var a=n.substring(o,i),s=void 0;0===r.length?s=a:(r+=a,s=r,r=''),e.push(s);break;case sr:r+=n.substring(o,i),r+='\0';break;case lr:r+=n.substring(o,i+1);break;default:Wo('Invalid encoded resource path: "'+n+'"');}o=i+2}return new re(e)}function lt(n,t){Ho(0===t,'Unexpected upgrade from version '+t),n.createObjectStore(pr.store,{keyPath:pr.keyPath}),n.createObjectStore(ur.store,{keyPath:ur.keyPath}),n.createObjectStore(yr.store,{keyPath:yr.keyPath}).createIndex(yr.documentTargetsIndex,yr.documentTargetsKeyPath,{unique:!0}),n.createObjectStore(fr.store,{keyPath:fr.keyPath}).createIndex(fr.queryTargetsIndexName,fr.queryTargetsKeyPath,{unique:!0}),n.createObjectStore(hr.store),n.createObjectStore(gr.store),n.createObjectStore(dr.store),n.createObjectStore(br.store)}function ct(o){return new Gn(function(r,e){o.onsuccess=function(e){var t=e.target.result;r(t)},o.onerror=function(n){e(n.target.error)}})}function dt(e){return Ho('string'==typeof e,'Persisting non-string stream token not supported.'),e}function pt(e){return mt(e,ur.store)}function ut(e){return mt(e,hr.store)}function ht(e){return mt(e,pr.store)}function mt(n,t){return n instanceof Cr?n.store(t):Wo('Invalid transaction object provided!')}function gt(e){return bt(e,fr.store)}function ft(e){return bt(e,br.store)}function yt(e){return bt(e,yr.store)}function bt(n,t){return n instanceof Cr?n.store(t):Wo('Invalid transaction object provided!')}function vt(e){return e instanceof Cr?e.store(gr.store):Wo('Invalid transaction object provided!')}function Et(e){return e.path.toArray()}function St(e){return void 0!==e.documents}function Ct(e){if(!e)return new ao;switch(e.type){case'gapi':return new co(e.client,e.sessionIndex||'0');case'provider':return e.client;default:throw new Ht(Gt.INVALID_ARGUMENT,'makeCredentialsProvider failed due to invalid credential type');}}function Tt(e){return kt(e,['next','error','complete'])}function kt(a,s){if('object'!=typeof a||null===a)return!1;for(var e=a,n=0,r=s,o;nt.query.docComparator(r,a.doc),'Got added events in wrong order'),r=a.doc,{type:'added',doc:o,oldIndex:-1,newIndex:e++}})}var d=t.oldDocs;return t.docChanges.map(function(e){var n=new Oo(s,e.doc.key,e.doc,t.fromCache),o=-1,l=-1;return e.type!==Ln.Added&&(o=d.indexOf(e.doc.key),Ho(0<=o,'Index for document not found'),d=d.delete(e.doc.key)),e.type!==Ln.Removed&&(d=d.add(e.doc),l=d.indexOf(e.doc.key)),{type:Dt(e.type),doc:n,oldIndex:o,newIndex:l}})}function Dt(e){return e===Ln.Added?'added':e===Ln.Modified||e===Ln.Metadata?'modified':e===Ln.Removed?'removed':Wo('Unknown change type: '+e)}function _t(e){e.INTERNAL.registerService('firestore',function(e){return new ko(e)},h(na))}function Mt(e){_t(e)}var Ft=Number.POSITIVE_INFINITY,Bt=String.fromCharCode,Ut=Math.floor,Vt=Math.min;Object.defineProperty(t,'__esModule',{value:!0});var zo=e(6),jt=zo.default.SDK_VERSION,Qt;!function(e){e[e.DEBUG=0]='DEBUG',e[e.ERROR=1]='ERROR',e[e.SILENT=2]='SILENT'}(Qt||(Qt={}));var qt=Qt.ERROR,Kt=function(){function n(){}return n.setPlatform=function(t){n.platform&&Wo('Platform already defined'),n.platform=t},n.getPlatform=function(){return n.platform||Wo('Platform not set'),n.platform},n}(),Wt=this&&this.__extends||function(){var o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(o,t){for(var e in t)t.hasOwnProperty(e)&&(o[e]=t[e])};return function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}}(),Gt={OK:'ok',CANCELLED:'cancelled',UNKNOWN:'unknown',INVALID_ARGUMENT:'invalid-argument',DEADLINE_EXCEEDED:'deadline-exceeded',NOT_FOUND:'not-found',ALREADY_EXISTS:'already-exists',PERMISSION_DENIED:'permission-denied',UNAUTHENTICATED:'unauthenticated',RESOURCE_EXHAUSTED:'resource-exhausted',FAILED_PRECONDITION:'failed-precondition',ABORTED:'aborted',OUT_OF_RANGE:'out-of-range',UNIMPLEMENTED:'unimplemented',INTERNAL:'internal',UNAVAILABLE:'unavailable',DATA_LOSS:'data-loss'},Ht=function(o){function t(t,a){var n=o.call(this,a)||this;return n.code=t,n.message=a,n.name='FirebaseError',n.toString=function(){return n.name+': [code='+n.code+']: '+n.message},n}return Wt(t,o),t}(Error),zt=function(){function e(){}return e.newId=function(){for(var o='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',t='',e=0;20>e;e++)t+=o.charAt(Ut(Math.random()*o.length));return Ho(20===t.length,'Invalid auto ID: '+t),t},e}(),Xt=function(){function n(e){F(),this.e=e}return n.fromBase64String=function(t){m('Blob.fromBase64String',arguments,1),b('Blob.fromBase64String','string',1,t),F();try{return new n(Kt.getPlatform().atob(t))}catch(e){throw new Ht(Gt.INVALID_ARGUMENT,'Failed to construct Blob from Base64 string: '+e)}},n.fromUint8Array=function(t){if(m('Blob.fromUint8Array',arguments,1),M(),!(t instanceof Uint8Array))throw A('Blob.fromUint8Array','Uint8Array',1,t);return new n(Array.prototype.map.call(t,function(e){return Bt(e)}).join(''))},n.prototype.toBase64=function(){return m('Blob.toBase64',arguments,0),F(),Kt.getPlatform().btoa(this.e)},n.prototype.toUint8Array=function(){m('Blob.toUint8Array',arguments,0),M();for(var n=new Uint8Array(this.e.length),t=0;tn||90o||180o.length&&Wo('offset '+t+' out of range '+o.length),void 0===e?e=o.length-t:e>o.length-t&&Wo('length '+e+' out of range '+(o.length-t)),this.segments=o,this.offset=t,this.len=e},o.prototype.construct=function(o,t,e){var n=Object.create(Object.getPrototypeOf(this));return n.init(o,t,e),n},Object.defineProperty(o.prototype,'length',{get:function(){return this.len},enumerable:!0,configurable:!0}),o.prototype.equals=function(t){return 0===o.comparator(this,t)},o.prototype.child=function(t){var r=this.segments.slice(this.offset,this.limit());return t instanceof o?t.forEach(function(e){r.push(e)}):'string'==typeof t?r.push(t):Wo('Unknown parameter type for Path.child(): '+t),this.construct(r)},o.prototype.limit=function(){return this.offset+this.length},o.prototype.popFirst=function(e){return e=void 0===e?1:e,Ho(this.length>=e,'Can\'t call popFirst() with less segments'),this.construct(this.segments,this.offset+e,this.length-e)},o.prototype.popLast=function(){return Ho(!this.isEmpty(),'Can\'t call popLast() on empty path'),this.construct(this.segments,this.offset,this.length-1)},o.prototype.firstSegment=function(){return Ho(!this.isEmpty(),'Can\'t call firstSegment() on empty path'),this.segments[this.offset]},o.prototype.lastSegment=function(){return Ho(!this.isEmpty(),'Can\'t call lastSegment() on empty path'),this.segments[this.limit()-1]},o.prototype.get=function(e){return Ho(eo)return 1}return a.lengtht.length?1:0},o}(),re=function(n){function o(){return null!==n&&n.apply(this,arguments)||this}return ee(o,n),o.prototype.canonicalString=function(){return this.toArray().join('/')},o.prototype.toString=function(){return this.canonicalString()},o.fromString=function(e){if(0<=e.indexOf('//'))throw new Ht(Gt.INVALID_ARGUMENT,'Invalid path ('+e+'). Paths must not contain // in them.');return new o(e.split('/').filter(function(e){return 0e?t=t.left:0n?t=t.left:0n?e=e.left:(t+=e.left.size+1,e=e.right)}return-1},o.prototype.isEmpty=function(){return this.root.isEmpty()},Object.defineProperty(o.prototype,'size',{get:function(){return this.root.size},enumerable:!0,configurable:!0}),o.prototype.minKey=function(){return this.root.minKey()},o.prototype.maxKey=function(){return this.root.maxKey()},o.prototype.inorderTraversal=function(e){return this.root.inorderTraversal(e)},o.prototype.forEach=function(o){this.inorderTraversal(function(t,e){return o(t,e),!1})},o.prototype.reverseTraversal=function(e){return this.root.reverseTraversal(e)},o.prototype.getIterator=function(e){return new he(this.root,null,this.comparator,!1,e)},o.prototype.getIteratorFrom=function(n,t){return new he(this.root,n,this.comparator,!1,t)},o.prototype.getReverseIterator=function(e){return new he(this.root,null,this.comparator,!0,e)},o.prototype.getReverseIteratorFrom=function(n,t){return new he(this.root,n,this.comparator,!0,t)},o}(),he=function(){function e(a,s,e,n,r){this.resultGenerator=r||null,this.isReverse=n,this.nodeStack=[];for(var o=1;!a.isEmpty();)if(o=s?e(a.key,s):1,n&&(o*=-1),0>o)a=this.isReverse?a.left:a.right;else{if(0===o){this.nodeStack.push(a);break}this.nodeStack.push(a),a=this.isReverse?a.right:a.left}}return e.prototype.getNext=function(){Ho(0r?n.copy(null,null,null,n.left.insert(a,t,e),null):0===r?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(a,t,e)),n.fixUp()},a.prototype.removeMin=function(){if(this.left.isEmpty())return a.EMPTY;var t=this;return t.left.isRed()||t.left.left.isRed()||(t=t.moveRedLeft()),t=t.copy(null,null,null,t.left.removeMin(),null),t.fixUp()},a.prototype.remove=function(t,e){var n=this,o;if(0>e(t,n.key))n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()||(n=n.moveRedLeft()),n=n.copy(null,null,null,n.left.remove(t,e),null);else{if(n.left.isRed()&&(n=n.rotateRight()),n.right.isEmpty()||n.right.isRed()||n.right.left.isRed()||(n=n.moveRedRight()),0===e(t,n.key)){if(n.right.isEmpty())return a.EMPTY;o=n.right.min(),n=n.copy(o.key,o.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(t,e))}return n.fixUp()},a.prototype.isRed=function(){return this.color},a.prototype.fixUp=function(){var e=this;return e.right.isRed()&&!e.left.isRed()&&(e=e.rotateLeft()),e.left.isRed()&&e.left.left.isRed()&&(e=e.rotateRight()),e.left.isRed()&&e.right.isRed()&&(e=e.colorFlip()),e},a.prototype.moveRedLeft=function(){var e=this.colorFlip();return e.right.left.isRed()&&(e=e.copy(null,null,null,null,e.right.rotateRight()),e=e.rotateLeft(),e=e.colorFlip()),e},a.prototype.moveRedRight=function(){var e=this.colorFlip();return e.left.left.isRed()&&(e=e.rotateRight(),e=e.colorFlip()),e},a.prototype.rotateLeft=function(){var t=this.copy(null,null,a.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)},a.prototype.rotateRight=function(){var t=this.copy(null,null,a.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,t)},a.prototype.colorFlip=function(){var n=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,n,t)},a.prototype.checkMaxDepth=function(){var e=this.check();return Math.pow(2,e)<=this.size+1},a.prototype.check=function(){if(this.isRed()&&this.left.isRed())throw Wo('Red node has red child('+this.key+','+this.value+')');if(this.right.isRed())throw Wo('Right child of ('+this.key+','+this.value+') is red');var e=this.left.check();if(e!==this.right.check())throw Wo('Black depths differ');return e+(this.isRed()?0:1)},a.EMPTY=null,a.RED=!0,a.BLACK=!1,a}(),fe=function(){function e(){this.size=0}return e.prototype.copy=function(){return this},e.prototype.insert=function(n,t){return new le(n,t)},e.prototype.remove=function(){return this},e.prototype.isEmpty=function(){return!0},e.prototype.inorderTraversal=function(){return!1},e.prototype.reverseTraversal=function(){return!1},e.prototype.minKey=function(){return null},e.prototype.maxKey=function(){return null},e.prototype.isRed=function(){return!1},e.prototype.checkMaxDepth=function(){return!0},e.prototype.check=function(){return 0},e}();le.EMPTY=new fe;var de=this&&this.__extends||function(){var o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(o,t){for(var e in t)t.hasOwnProperty(e)&&(o[e]=t[e])};return function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}}(),ye;!function(e){e[e.NullValue=0]='NullValue',e[e.BooleanValue=1]='BooleanValue',e[e.NumberValue=2]='NumberValue',e[e.TimestampValue=3]='TimestampValue',e[e.StringValue=4]='StringValue',e[e.BlobValue=5]='BlobValue',e[e.RefValue=6]='RefValue',e[e.GeoPointValue=7]='GeoPointValue',e[e.ArrayValue=8]='ArrayValue',e[e.ObjectValue=9]='ObjectValue'}(ye||(ye={}));var pe=function(){function e(){}return e.prototype.toString=function(){var e=this.value();return null===e?'null':''+e},e.prototype.defaultCompareTo=function(e){return Ho(this.typeOrder!==e.typeOrder,'Default compareTo should not be used for values of same type.'),P(this.typeOrder,e.typeOrder)},e}(),ge=function(n){function o(){var t=n.call(this)||this;return t.typeOrder=ye.NullValue,t.internalValue=null,t}return de(o,n),o.prototype.value=function(){return null},o.prototype.equals=function(e){return e instanceof o},o.prototype.compareTo=function(e){return e instanceof o?0:this.defaultCompareTo(e)},o.INSTANCE=new o,o}(pe),ve=function(o){function n(t){var r=o.call(this)||this;return r.internalValue=t,r.typeOrder=ye.BooleanValue,r}return de(n,o),n.prototype.value=function(){return this.internalValue},n.prototype.equals=function(e){return e instanceof n&&this.internalValue===e.internalValue},n.prototype.compareTo=function(e){return e instanceof n?P(this,e):this.defaultCompareTo(e)},n.of=function(e){return e?n.TRUE:n.FALSE},n.TRUE=new n(!0),n.FALSE=new n(!1),n}(pe),be=function(o){function n(t){var r=o.call(this)||this;return r.internalValue=t,r.typeOrder=ye.NumberValue,r}return de(n,o),n.prototype.value=function(){return this.internalValue},n.prototype.compareTo=function(e){return e instanceof n?B(this.internalValue,e.internalValue):this.defaultCompareTo(e)},n}(pe),we=function(n){function o(t){return n.call(this,t)||this}return de(o,n),o.prototype.equals=function(e){return e instanceof o&&U(this.internalValue,e.internalValue)},o}(be),Ie=function(o){function n(t){var r=o.call(this,t)||this;return r.internalValue=t,r}return de(n,o),n.prototype.equals=function(e){return e instanceof n&&U(this.internalValue,e.internalValue)},n.NAN=new n(NaN),n.POSITIVE_INFINITY=new n(1/0),n.NEGATIVE_INFINITY=new n(-1/0),n}(be),Te=function(o){function n(t){var r=o.call(this)||this;return r.internalValue=t,r.typeOrder=ye.StringValue,r}return de(n,o),n.prototype.value=function(){return this.internalValue},n.prototype.equals=function(e){return e instanceof n&&this.internalValue===e.internalValue},n.prototype.compareTo=function(e){return e instanceof n?P(this.internalValue,e.internalValue):this.defaultCompareTo(e)},n}(pe),Ee=function(o){function n(t){var r=o.call(this)||this;return r.internalValue=t,r.typeOrder=ye.TimestampValue,r}return de(n,o),n.prototype.value=function(){return this.internalValue.toDate()},n.prototype.equals=function(e){return e instanceof n&&this.internalValue.equals(e.internalValue)},n.prototype.compareTo=function(e){return e instanceof n?this.internalValue.compareTo(e.internalValue):e instanceof Se?-1:this.defaultCompareTo(e)},n}(pe),Se=function(o){function n(t){var r=o.call(this)||this;return r.localWriteTime=t,r.typeOrder=ye.TimestampValue,r}return de(n,o),n.prototype.value=function(){return null},n.prototype.equals=function(e){return e instanceof n&&this.localWriteTime.equals(e.localWriteTime)},n.prototype.compareTo=function(e){return e instanceof n?this.localWriteTime.compareTo(e.localWriteTime):e instanceof Ee?1:this.defaultCompareTo(e)},n.prototype.toString=function(){return''},n}(pe),Ce=function(o){function n(t){var r=o.call(this)||this;return r.internalValue=t,r.typeOrder=ye.BlobValue,r}return de(n,o),n.prototype.value=function(){return this.internalValue},n.prototype.equals=function(e){return e instanceof n&&this.internalValue.n(e.internalValue)},n.prototype.compareTo=function(e){return e instanceof n?this.internalValue.r(e.internalValue):this.defaultCompareTo(e)},n}(pe),De=function(o){function r(t,a){var n=o.call(this)||this;return n.databaseId=t,n.key=a,n.typeOrder=ye.RefValue,n}return de(r,o),r.prototype.value=function(){return this.key},r.prototype.equals=function(e){return e instanceof r&&this.key.equals(e.key)&&this.databaseId.equals(e.databaseId)},r.prototype.compareTo=function(e){if(e instanceof r){var t=this.databaseId.compareTo(e.databaseId);return 0===t?ae.comparator(this.key,e.key):t}return this.defaultCompareTo(e)},r}(pe),ke=function(o){function n(t){var r=o.call(this)||this;return r.internalValue=t,r.typeOrder=ye.GeoPointValue,r}return de(n,o),n.prototype.value=function(){return this.internalValue},n.prototype.equals=function(e){return e instanceof n&&this.internalValue.n(e.internalValue)},n.prototype.compareTo=function(e){return e instanceof n?this.internalValue.r(e.internalValue):this.defaultCompareTo(e)},n}(pe),Ne=function(o){function s(t){var r=o.call(this)||this;return r.internalValue=t,r.typeOrder=ye.ObjectValue,r}return de(s,o),s.prototype.value=function(){var o={};return this.internalValue.inorderTraversal(function(t,e){o[t]=e.value()}),o},s.prototype.forEach=function(e){this.internalValue.inorderTraversal(e)},s.prototype.equals=function(e){if(e instanceof s){for(var t=this.internalValue.getIterator(),n=e.internalValue.getIterator();t.hasNext()&&n.hasNext();){var r=t.getNext(),o=n.getNext();if(r.key!==o.key||!r.value.equals(o.value))return!1}return!t.hasNext()&&!n.hasNext()}return!1},s.prototype.compareTo=function(e){if(e instanceof s){for(var t=this.internalValue.getIterator(),n=e.internalValue.getIterator();t.hasNext()&&n.hasNext();){var r=t.getNext(),o=n.getNext(),i=P(r.key,o.key)||r.value.compareTo(o.value);if(i)return i}return P(t.hasNext(),n.hasNext())}return this.defaultCompareTo(e)},s.prototype.set=function(e,t){if(Ho(!e.isEmpty(),'Cannot set field for empty path on ObjectValue'),1===e.length)return this.setChild(e.firstSegment(),t);var n=this.child(e.firstSegment());n instanceof s||(n=s.EMPTY);var r=n.set(e.popFirst(),t);return this.setChild(e.firstSegment(),r)},s.prototype.delete=function(e){if(Ho(!e.isEmpty(),'Cannot delete field for empty path on ObjectValue'),1===e.length)return new s(this.internalValue.remove(e.firstSegment()));var t=this.child(e.firstSegment());if(t instanceof s){var n=t.delete(e.popFirst());return new s(this.internalValue.insert(e.firstSegment(),n))}return this},s.prototype.contains=function(e){return void 0!==this.field(e)},s.prototype.field=function(e){Ho(!e.isEmpty(),'Can\'t get field of empty path');var o=this;return e.forEach(function(e){o=o instanceof s?o.internalValue.get(e)||void 0:void 0}),o},s.prototype.toString=function(){return JSON.stringify(this.value())},s.prototype.child=function(e){return this.internalValue.get(e)||void 0},s.prototype.setChild=function(e,t){return new s(this.internalValue.insert(e,t))},s.EMPTY=new s(new ce(P)),s}(pe),Ae=function(o){function a(t){var r=o.call(this)||this;return r.internalValue=t,r.typeOrder=ye.ArrayValue,r}return de(a,o),a.prototype.value=function(){return this.internalValue.map(function(e){return e.value()})},a.prototype.forEach=function(e){this.internalValue.forEach(e)},a.prototype.equals=function(e){if(e instanceof a){if(this.internalValue.length!==e.internalValue.length)return!1;for(var t=0;t='===t?n.GREATER_THAN_OR_EQUAL:'>'===t?n.GREATER_THAN:Wo('Unknown relation: '+t)},n.prototype.toString=function(){return this.name},n.prototype.equals=function(e){return this.name===e.name},n.LESS_THAN=new n('<'),n.LESS_THAN_OR_EQUAL=new n('<='),n.EQUAL=new n('=='),n.GREATER_THAN=new n('>'),n.GREATER_THAN_OR_EQUAL=new n('>='),n}(),xe=function(){function n(o,r,e){this.field=o,this.op=r,this.value=e}return n.prototype.matches=function(o){if(this.field.isKeyField()){Ho(this.value instanceof De,'Comparing on key, but filter value not a RefValue');var t=this.value,e=ae.comparator(o.key,t.key);return this.matchesComparison(e)}var n=o.field(this.field);return void 0!==n&&this.matchesValue(n)},n.prototype.matchesValue=function(e){return this.value.typeOrder===e.typeOrder&&this.matchesComparison(e.compareTo(this.value))},n.prototype.matchesComparison=function(e){switch(this.op){case Le.LESS_THAN:return 0>e;case Le.LESS_THAN_OR_EQUAL:return 0>=e;case Le.EQUAL:return 0===e;case Le.GREATER_THAN:return 0=e:0>e},e.prototype.equals=function(o){if(null===o)return!1;if(this.before!==o.before||this.position.length!==o.position.length)return!1;for(var t=0;to,'timestamp nanoseconds out of range'+o),Ho(-62135596800<=n,'timestamp seconds out of range: '+n),Ho(253402300800>n,'timestamp seconds out of range'+n)}return a.now=function(){return a.fromEpochMilliseconds(Date.now())},a.fromDate=function(t){return a.fromEpochMilliseconds(t.getTime())},a.fromEpochMilliseconds=function(t){var e=Ut(t/1e3);return new a(e,1e6*(t-1e3*e))},a.fromISOString=function(t){var e=0,n=Ke.exec(t);if(Ho(!!n,'invalid timestamp: '+t),n[1]){var s=n[1];s=(s+'000000000').substr(0,9),e=parseInt(s,10)}var o=new Date(t);return new a(Ut(o.getTime()/1e3),e)},a.prototype.toDate=function(){return new Date(this.toEpochMilliseconds())},a.prototype.toEpochMilliseconds=function(){return 1e3*this.seconds+this.nanos/1e6},a.prototype.compareTo=function(e){return this.seconds===e.seconds?P(this.nanos,e.nanos):P(this.seconds,e.seconds)},a.prototype.equals=function(e){return e.seconds===this.seconds&&e.nanos===this.nanos},a.prototype.toString=function(){return'Timestamp(seconds='+this.seconds+', nanos='+this.nanos+')'},a}(),Ge=function(){function o(e){this.timestamp=e}return o.fromMicroseconds=function(t){var e=Ut(t/1e6);return new o(new We(e,1e3*(t%1e6)))},o.fromTimestamp=function(t){return new o(t)},o.forDeletedDoc=function(){return o.MIN},o.prototype.compareTo=function(e){return this.timestamp.compareTo(e.timestamp)},o.prototype.equals=function(e){return this.timestamp.equals(e.timestamp)},o.prototype.toMicroseconds=function(){return 1e6*this.timestamp.seconds+this.timestamp.nanos/1e3},o.prototype.toString=function(){return'SnapshotVersion('+this.timestamp+')'},o.prototype.toTimestamp=function(){return this.timestamp},o.MIN=new o(new We(0,0)),o}(),He;!function(e){e[e.Listen=0]='Listen',e[e.ExistenceFilterMismatch=1]='ExistenceFilterMismatch',e[e.LimboResolution=2]='LimboResolution'}(He||(He={}));var me=function(){function n(a,s,e,n,r){void 0===n&&(n=Ge.MIN),void 0===r&&(r=i()),this.query=a,this.targetId=s,this.purpose=e,this.snapshotVersion=n,this.resumeToken=r}return n.prototype.update=function(t){return new n(this.query,this.targetId,this.purpose,t.snapshotVersion,t.resumeToken)},n.prototype.equals=function(e){return this.targetId===e.targetId&&this.purpose===e.purpose&&this.snapshotVersion.equals(e.snapshotVersion)&&this.resumeToken===e.resumeToken&&this.query.equals(e.query)},n}(),Xe=this&&this.__extends||function(){var o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(o,t){for(var e in t)t.hasOwnProperty(e)&&(o[e]=t[e])};return function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}}(),Ye=function(){function e(e){this.fields=e}return e.prototype.equals=function(e){return x(this.fields,e.fields)},e}(),Je=function(){function n(){}return n.prototype.equals=function(t){return t instanceof n},n.instance=new n,n}(),$e=function(){function e(n,o){this.field=n,this.transform=o}return e.prototype.equals=function(e){return this.field.equals(e.field)&&this.transform.equals(e.transform)},e}(),Ze=function(){function e(n,o){this.version=n,this.transformResults=o}return e}(),tn;!function(e){e[e.Set=0]='Set',e[e.Patch=1]='Patch',e[e.Transform=2]='Transform',e[e.Delete=3]='Delete'}(tn||(tn={}));var ze=function(){function n(n,o){this.updateTime=n,this.exists=o,Ho(void 0===n||void 0===o,'Precondition can specify "exists" or "updateTime" but not both')}return n.exists=function(t){return new n(void 0,t)},n.updateTime=function(t){return new n(t)},Object.defineProperty(n.prototype,'isNone',{get:function(){return void 0===this.updateTime&&void 0===this.exists},enumerable:!0,configurable:!0}),n.prototype.isValidFor=function(e){return void 0===this.updateTime?void 0===this.exists?(Ho(this.isNone,'Precondition should be empty'),!0):this.exists?e instanceof se:null===e||e instanceof ue:e instanceof se&&e.version.equals(this.updateTime)},n.prototype.equals=function(e){return L(this.updateTime,e.updateTime)&&this.exists===e.exists},n.NONE=new n,n}(),nn=function(){function e(){}return e.prototype.verifyKeyMatches=function(e){null!=e&&Ho(e.key.equals(this.key),'Can only apply a mutation to a document with the same key')},e.getPostMutationVersion=function(e){return e instanceof se?e.version:Ge.MIN},e}(),rn=function(a){function n(t,i,n){var r=a.call(this)||this;return r.key=t,r.value=i,r.precondition=n,r.type=tn.Set,r}return Xe(n,a),n.prototype.applyToRemoteDocument=function(o,t){this.verifyKeyMatches(o),Ho(null==t.transformResults,'Transform results received by SetMutation.');var e=nn.getPostMutationVersion(o);return new se(this.key,e,this.value,{hasLocalMutations:!1})},n.prototype.applyToLocalView=function(e){if(this.verifyKeyMatches(e),!this.precondition.isValidFor(e))return e;var t=nn.getPostMutationVersion(e);return new se(this.key,t,this.value,{hasLocalMutations:!0})},n.prototype.equals=function(e){return e instanceof n&&this.key.equals(e.key)&&this.value.equals(e.value)&&this.precondition.equals(e.precondition)},n}(nn),on=function(a){function n(t,s,n,r){var o=a.call(this)||this;return o.key=t,o.data=s,o.fieldMask=n,o.precondition=r,o.type=tn.Patch,o}return Xe(n,a),n.prototype.applyToRemoteDocument=function(o,t){if(this.verifyKeyMatches(o),Ho(null==t.transformResults,'Transform results received by PatchMutation.'),!this.precondition.isValidFor(o))return o;var e=nn.getPostMutationVersion(o),n=this.patchDocument(o);return new se(this.key,e,n,{hasLocalMutations:!1})},n.prototype.applyToLocalView=function(e){if(this.verifyKeyMatches(e),!this.precondition.isValidFor(e))return e;var t=nn.getPostMutationVersion(e),n=this.patchDocument(e);return new se(this.key,t,n,{hasLocalMutations:!0})},n.prototype.equals=function(e){return e instanceof n&&this.key.equals(e.key)&&this.fieldMask.equals(e.fieldMask)&&this.precondition.equals(e.precondition)},n.prototype.patchDocument=function(n){var t;return t=n instanceof se?n.data:Ne.EMPTY,this.patchObject(t)},n.prototype.patchObject=function(a){for(var t=0,e=this.fieldMask.fields;t>Jn<=o?e|this.generatorId:(e|this.generatorId)-(1<',o),e=this.store.put(o)):(So('SimpleDb','PUT',this.store.name,o,t),e=this.store.put(t,o)),ct(e)},e.prototype.get=function(o){var t=this;return ct(this.store.get(o)).next(function(e){return void 0===e&&(e=null),So('SimpleDb','GET',t.store.name,o,e),e})},e.prototype.delete=function(e){return So('SimpleDb','DELETE',this.store.name,e),ct(this.store.delete(e))},e.prototype.loadAll=function(o,t){var e=this.cursor(this.options(o,t)),n=[];return this.iterateCursor(e,function(o,t){n.push(t)}).next(function(){return n})},e.prototype.deleteAll=function(o,t){So('SimpleDb','DELETE ALL',this.store.name);var e=this.options(o,t);e.keysOnly=!1;var n=this.cursor(e);return this.iterateCursor(n,function(o,t,e){return e.delete()})},e.prototype.iterate=function(o,t){var e;t?e=o:(e={},t=o);var n=this.cursor(e);return this.iterateCursor(n,t)},e.prototype.iterateCursor=function(a,s){var e=[];return new Gn(function(n,r){a.onerror=function(e){r(e.target.error)},a.onsuccess=function(r){var t=r.target.result;if(!t)return void n();var d=new Sr(t),i=s(t.primaryKey,t.value,d);i instanceof Gn&&e.push(i),d.isDone?n():null===d.skipToKey?t.continue():t.continue(d.skipToKey)}}).next(function(){return Gn.waitFor(e)})},e.prototype.options=function(o,r){var a;return void 0!==o&&('string'==typeof o?a=o:(Ho(void 0===r,'3rd argument must not be defined if 2nd is a range.'),r=o)),{index:a,range:r}},e.prototype.cursor=function(o){var t='next';if(o.reverse&&(t='prev'),o.index){var e=this.store.index(o.index);return o.keysOnly?e.openKeyCursor(o.range,t):e.openCursor(o.range,t)}return this.store.openCursor(o.range,t)},e}(),kr=function(){function o(n,o){this.userId=n,this.serializer=o,this.garbageCollector=null}return o.forUser=function(t,e){return Ho(''!==t.uid,'UserID must not be an empty string.'),new o(t.isUnauthenticated()?'':t.uid,e)},o.prototype.start=function(r){var e=this;return o.loadNextBatchIdFromDb(r).next(function(n){return e.nextBatchId=n,ht(r).get(e.userId)}).next(function(n){return n||(n=new pr(e.userId,nr,'')),e.metadata=n,e.metadata.lastAcknowledgedBatchId>=e.nextBatchId?e.checkEmpty(r).next(function(n){return Ho(n,'Reset nextBatchID is only possible when the queue is empty'),e.metadata.lastAcknowledgedBatchId=nr,ht(r).put(e.metadata)}):Gn.resolve()})},o.loadNextBatchIdFromDb=function(n){var a=nr;return pt(n).iterate({reverse:!0},function(e,t,n){var r=e[0];if(e[1]>a&&(a=t.batchId),''===r)n.done();else{var o=D(r);n.skip([o])}}).next(function(){return a+1})},o.prototype.checkEmpty=function(o){var a=!0,e=IDBKeyRange.bound(this.keyForBatchId(Number.NEGATIVE_INFINITY),this.keyForBatchId(Number.POSITIVE_INFINITY));return pt(o).iterate({range:e},function(e,t,n){a=!1,n.done()}).next(function(){return a})},o.prototype.getNextBatchId=function(){return Gn.resolve(this.nextBatchId)},o.prototype.getHighestAcknowledgedBatchId=function(){return Gn.resolve(this.metadata.lastAcknowledgedBatchId)},o.prototype.acknowledgeBatch=function(o,t,e){var n=t.batchId;return Ho(n>this.metadata.lastAcknowledgedBatchId,'Mutation batchIDs must be acknowledged in order'),this.metadata.lastAcknowledgedBatchId=n,this.metadata.lastStreamToken=dt(e),ht(o).put(this.metadata)},o.prototype.getLastStreamToken=function(){return Gn.resolve(this.metadata.lastStreamToken)},o.prototype.setLastStreamToken=function(n,t){return this.metadata.lastStreamToken=dt(t),ht(n).put(this.metadata)},o.prototype.addMutationBatch=function(d,t,e){var n=this,r=this.nextBatchId;this.nextBatchId++;var o=new or(r,t,e),i=this.serializer.toDbMutationBatch(this.userId,o);return pt(d).put(i).next(function(){for(var t=[],o=0,i=e;os,'Should have found mutation after '+s),n=e.serializer.fromDbMutationBatch(t)),r.done()}).next(function(){return n})},o.prototype.getAllMutationBatches=function(o){var r=this,e=IDBKeyRange.bound(this.keyForBatchId(nr),this.keyForBatchId(Number.POSITIVE_INFINITY));return pt(o).loadAll(e).next(function(e){return e.map(function(e){return r.serializer.fromDbMutationBatch(e)})})},o.prototype.getAllMutationBatchesThroughBatchId=function(o,t){var e=this,n=IDBKeyRange.bound(this.keyForBatchId(nr),this.keyForBatchId(t));return pt(o).loadAll(n).next(function(n){return n.map(function(n){return e.serializer.fromDbMutationBatch(n)})})},o.prototype.getAllMutationBatchesAffectingDocumentKey=function(d,t){var e=this,n=hr.prefixForPath(this.userId,t.path),r=IDBKeyRange.lowerBound(n),a=[];return ut(d).iterate({range:r},function(n,r,o){var i=n[0],s=n[1],p=n[2],c=st(s);if(i!==e.userId||!t.path.equals(c))return void o.done();var l=e.keyForBatchId(p);return pt(d).get(l).next(function(o){null===o&&Wo('Dangling document-mutation reference found: '+n+' which points to '+l),a.push(e.serializer.fromDbMutationBatch(o))})}).next(function(){return a})},o.prototype.getAllMutationBatchesAffectingQuery=function(d,t){var l=this;Ho(!t.isDocumentQuery(),'Document queries shouldn\'t go down this path');var n=t.path,r=n.length+1,e=hr.prefixForPath(this.userId,n),o=(e[1],IDBKeyRange.lowerBound(e)),p=new en(P);return ut(d).iterate({range:o},function(o,t,e){var i=o[0],a=o[1],s=o[2],d=st(a);return i===l.userId&&n.isPrefixOf(d)?void(d.length===r&&(p=p.add(s))):void e.done()}).next(function(){var n=[],e=[];return p.forEach(function(t){var o=l.keyForBatchId(t);e.push(pt(d).get(o).next(function(e){null===e&&Wo('Dangling document-mutation reference found, which points to '+o),n.push(l.serializer.fromDbMutationBatch(e))}))}),Gn.waitFor(e).next(function(){return n})})},o.prototype.removeMutationBatches=function(d,t){for(var p=pt(d),e=ut(d),n=[],o=this,r=0,a=t,i;rthis.metadata.highestTargetId?(this.metadata.highestTargetId=n,r.next(function(){return ft(a).put(br.key,e.metadata)})):r},e.prototype.removeQueryData=function(n,t){return this.removeMatchingKeysForTargetId(n,t.targetId).next(function(){gt(n).delete(t.targetId)})},e.prototype.getQueryData=function(a,s){var e=this,t=s.canonicalId(),n=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Ft]),d=null;return gt(a).iterate({range:n,index:fr.queryTargetsIndexName},function(n,t,r){var o=e.serializer.fromDbTarget(t);s.equals(o.query)&&(d=o,r.done())}).next(function(){return d})},e.prototype.addMatchingKeys=function(a,t,i){var n=[],r=yt(a);return t.forEach(function(o){var t=rt(o.path);n.push(r.put(new yr(i,t)))}),Gn.waitFor(n)},e.prototype.removeMatchingKeys=function(a,t,s){var n=this,r=[],o=yt(a);return t.forEach(function(a){var t=rt(a.path);r.push(o.delete([s,t])),null!==n.garbageCollector&&n.garbageCollector.addPotentialGarbageKey(a)}),Gn.waitFor(r)},e.prototype.removeMatchingKeysForTargetId=function(o,t){var e=yt(o),n=IDBKeyRange.bound([t],[t+1],!1,!0);return this.notifyGCForRemovedKeys(o,n).next(function(){return e.delete(n)})},e.prototype.notifyGCForRemovedKeys=function(o,t){var a=this,n=yt(o);return null!==this.garbageCollector&&this.garbageCollector.isEager?n.iterate({range:t,keysOnly:!0},function(e){var t=st(e[1]),n=new ae(t);Ho(null!==a.garbageCollector,'GarbageCollector for query cache set to null during key removal.'),a.garbageCollector.addPotentialGarbageKey(n)}):Gn.resolve()},e.prototype.getMatchingKeysForTargetId=function(a,t){var e=IDBKeyRange.bound([t],[t+1],!1,!0),i=yt(a),s=J();return i.iterate({range:e,keysOnly:!0},function(e){var t=st(e[1]),n=new ae(t);s=s.add(n)}).next(function(){return s})},e.prototype.setGarbageCollector=function(e){this.garbageCollector=e},e.prototype.containsKey=function(a,t){Ho(null!==a,'Persistence Transaction cannot be null for query cache containsKey');var e=rt(t.path),n=IDBKeyRange.bound([e],[_(e)],!1,!0),i=0;return yt(a).iterate({index:yr.documentTargetsIndex,keysOnly:!0,range:n},function(o,t,e){i++,e.done()}).next(function(){return 0t?(o('Persistence owner-lease is in the future. Discarding.',n),1):n.ownerId===this.getZombiedOwnerId()))},r.prototype.scheduleOwnerLeaseRefreshes=function(){var n=this;this.ownerLeaseRefreshHandle=setInterval(function(){n.runTransaction('Refresh owner timestamp',function(t){return t.store(dr.store).put('owner',new dr(n.ownerId,Date.now()))}).catch(function(t){o(t),n.stopOwnerLeaseRefreshes()})},4e3)},r.prototype.stopOwnerLeaseRefreshes=function(){this.ownerLeaseRefreshHandle&&(clearInterval(this.ownerLeaseRefreshHandle),this.ownerLeaseRefreshHandle=null)},r.prototype.attachWindowUnloadHook=function(){var e=this;this.windowUnloadHandler=function(){e.setZombiedOwnerId(e.ownerId),e.shutdown()},window.addEventListener('unload',this.windowUnloadHandler)},r.prototype.detachWindowUnloadHook=function(){this.windowUnloadHandler&&(window.removeEventListener('unload',this.windowUnloadHandler),this.windowUnloadHandler=null)},r.prototype.getZombiedOwnerId=function(){try{var e=window.localStorage.getItem(this.zombiedOwnerLocalStorageKey());return So('IndexedDbPersistence','Zombied ownerID from LocalStorage:',e),e}catch(e){return o('Failed to get zombie owner id.',e),null}},r.prototype.setZombiedOwnerId=function(e){try{null===e?window.localStorage.removeItem(this.zombiedOwnerLocalStorageKey()):window.localStorage.setItem(this.zombiedOwnerLocalStorageKey(),e)}catch(e){o('Failed to set zombie owner id.',e)}},r.prototype.zombiedOwnerLocalStorageKey=function(){return this.localStoragePrefix+'zombiedOwnerId'},r.prototype.generateOwnerId=function(){return zt.newId()},r.MAIN_DATABASE='main',r}(),Or=function(){function e(n,o){this.remoteDocumentCache=n,this.mutationQueue=o}return e.prototype.getDocument=function(o,t){var e=this;return this.remoteDocumentCache.getEntry(o,t).next(function(n){return e.computeLocalDocument(o,t,n)})},e.prototype.getDocuments=function(a,t){var i=this,n=[],r=X();return t.forEach(function(o){n.push(i.getDocument(a,o).next(function(e){e||(e=new ue(o,Ge.forDeletedDoc())),r=r.insert(o,e)}))}),Gn.waitFor(n).next(function(){return r})},e.prototype.getDocumentsMatchingQuery=function(n,t){return ae.isDocumentKey(t.path)?this.getDocumentsMatchingDocumentQuery(n,t.path):this.getDocumentsMatchingCollectionQuery(n,t)},e.prototype.getDocumentsMatchingDocumentQuery=function(n,t){return this.getDocument(n,new ae(t)).next(function(n){var t=Q();return n instanceof se&&(t=t.insert(n.key,n)),t})},e.prototype.getDocumentsMatchingCollectionQuery=function(a,i){var t=this,e;return this.remoteDocumentCache.getDocumentsMatchingQuery(a,i).next(function(n){return t.computeLocalDocuments(a,n)}).next(function(n){return e=n,t.mutationQueue.getAllMutationBatchesAffectingQuery(a,i)}).next(function(n){for(var r=J(),o=0,i=n;on,'Acknowledged batches can\'t be rejected.'),t})}).next(function(){return i.removeMutationBatch(e,t)}).next(function(o){return n=o,i.mutationQueue.performConsistencyCheck(e)}).next(function(){return i.localDocuments.getDocuments(e,n)})})},e.prototype.getLastStreamToken=function(){var n=this;return this.persistence.runTransaction('Get last stream token',function(t){return n.mutationQueue.getLastStreamToken(t)})},e.prototype.setLastStreamToken=function(o){var t=this;return this.persistence.runTransaction('Set last stream token',function(e){return t.mutationQueue.setLastStreamToken(e,o)})},e.prototype.getLastRemoteSnapshotVersion=function(){return this.queryCache.getLastRemoteSnapshotVersion()},e.prototype.applyRemoteEvent=function(i){var p=this,e=new Pr(this.remoteDocuments);return this.persistence.runTransaction('Apply remote event',function(c){var r=[];d(i.targetChanges,function(e,t){var n=p.targetIds[e];if(n){var o=t.mapping;if(o)if(o instanceof vn)r.push(p.queryCache.removeMatchingKeysForTargetId(c,e).next(function(){return p.queryCache.addMatchingKeys(c,o.documents,e)}));else{if(!(o instanceof bn))return Wo('Unknown mapping type: '+JSON.stringify(o));r.push(p.queryCache.removeMatchingKeys(c,o.removedDocuments,e).next(function(){return p.queryCache.addMatchingKeys(c,o.addedDocuments,e)}))}var a=t.resumeToken;0=n.compareTo(t)||u(this.targetIds)},e.prototype.shouldHoldBatchResult=function(e){return!this.isRemoteUpToVersion(e)||0r.version.compareTo(l))&&(r=n.applyToRemoteDocument(d,r,s),r?e.addEntry(r):Ho(!o,'Mutation batch '+n+' applied to document '+o+' resulted in null'))})}),r},e}(),xr=function(){function e(){this.mutationQueue=[],this.nextBatchId=1,this.highestAcknowledgedBatchId=nr,this.lastStreamToken=i(),this.garbageCollector=null,this.batchesByDocumentKey=new en(Yn.compareByKey)}return e.prototype.start=function(){return 0===this.mutationQueue.length&&(this.nextBatchId=1,this.highestAcknowledgedBatchId=nr),Ho(this.highestAcknowledgedBatchIdthis.highestAcknowledgedBatchId,'Mutation batchIDs must be acknowledged in order');var r=this.indexOfExistingBatchId(n,'acknowledged'),o=this.mutationQueue[r];return Ho(n===o.batchId,'Queue ordering failure: expected batch '+n+', got batch '+o.batchId),Ho(!o.isTombstone(),'Can\'t acknowledge a previously removed batch'),this.highestAcknowledgedBatchId=n,this.lastStreamToken=e,Gn.resolve()},e.prototype.getLastStreamToken=function(){return Gn.resolve(this.lastStreamToken)},e.prototype.setLastStreamToken=function(n,t){return this.lastStreamToken=t,Gn.resolve()},e.prototype.addMutationBatch=function(d,t,e){Ho(0!==e.length,'Mutation batches should not be empty');var n=this.nextBatchId;this.nextBatchId++,0n?0:n,o;rn?n=0:n>=e?n=e:n++,Gn.resolve(this.getAllLiveMutationBatchesBeforeIndex(n))},e.prototype.getAllMutationBatchesAffectingDocumentKey=function(a,s){var e=this,t=new Yn(s,0),n=new Yn(s,Ft),o=[];return this.batchesByDocumentKey.forEachInRange([t,n],function(n){Ho(s.equals(n.key),'Should only iterate over a single key\'s batches');var t=e.findMutationBatch(n.targetOrBatchId);Ho(null!==t,'Batches in the index must exist in the main table'),o.push(t)}),Gn.resolve(o)},e.prototype.getAllMutationBatchesAffectingQuery=function(d,t){var l=this,n=t.path,r=n.length+1,e=n;ae.isDocumentKey(e)||(e=e.child(''));var o=new Yn(new ae(e),0),a=new en(P);this.batchesByDocumentKey.forEachWhile(function(o){var t=o.key.path;return!!n.isPrefixOf(t)&&(t.length===r&&(a=a.add(o.targetOrBatchId)),!0)},o);var i=[];return a.forEach(function(n){var t=l.findMutationBatch(n);null!==t&&i.push(t)}),Gn.resolve(i)},e.prototype.removeMutationBatches=function(c,t){var e=t.length;Ho(0t||t>=this.mutationQueue.length)return null;var e=this.mutationQueue[t];return Ho(e.batchId===o,'If found batch must match'),e.isTombstone()?null:e},e}(),Dr=function(){function e(){this.queries=new jn(function(e){return e.canonicalId()}),this.lastRemoteSnapshotVersion=Ge.MIN,this.highestTargetId=0,this.references=new Xn}return e.prototype.start=function(){return Gn.resolve()},e.prototype.getLastRemoteSnapshotVersion=function(){return this.lastRemoteSnapshotVersion},e.prototype.getHighestTargetId=function(){return this.highestTargetId},e.prototype.setLastRemoteSnapshotVersion=function(n,t){return this.lastRemoteSnapshotVersion=t,Gn.resolve()},e.prototype.addQueryData=function(o,t){this.queries.set(t.query,t);var e=t.targetId;return e>this.highestTargetId&&(this.highestTargetId=e),Gn.resolve()},e.prototype.removeQueryData=function(n,t){return this.queries.delete(t.query),this.references.removeReferencesForId(t.targetId),Gn.resolve()},e.prototype.getQueryData=function(o,t){var e=this.queries.get(t)||null;return Gn.resolve(e)},e.prototype.addMatchingKeys=function(o,t,e){return this.references.addReferences(t,e),Gn.resolve()},e.prototype.removeMatchingKeys=function(o,t,e){return this.references.removeReferences(t,e),Gn.resolve()},e.prototype.removeMatchingKeysForTargetId=function(n,t){return this.references.removeReferencesForId(t),Gn.resolve()},e.prototype.getMatchingKeysForTargetId=function(o,t){var e=this.references.referencesForId(t);return Gn.resolve(e)},e.prototype.setGarbageCollector=function(e){this.references.setGarbageCollector(e)},e.prototype.containsKey=function(n,t){return this.references.containsKey(n,t)},e}(),_r=function(){function e(){this.docs=X()}return e.prototype.addEntry=function(n,t){return this.docs=this.docs.insert(t.key,t),Gn.resolve()},e.prototype.removeEntry=function(n,t){return this.docs=this.docs.remove(t),Gn.resolve()},e.prototype.getEntry=function(n,t){return Gn.resolve(this.docs.get(t))},e.prototype.getDocumentsMatchingQuery=function(d,t){for(var e=Q(),n=new ae(t.path.child('')),r=this.docs.getIteratorFrom(n);r.hasNext();){var o=r.getNext(),i=o.key,a=o.value;if(!t.path.isPrefixOf(i.path))break;a instanceof se&&t.matches(a)&&(e=e.insert(a.key,a))}return Gn.resolve(e)},e}(),Mr=function(){function e(){this.mutationQueues={},this.remoteDocumentCache=new _r,this.queryCache=new Dr,this.started=!1}return e.prototype.start=function(){return Ho(!this.started,'MemoryPersistence double-started!'),this.started=!0,Promise.resolve()},e.prototype.shutdown=function(){return Ho(this.started,'MemoryPersistence shutdown without start!'),this.started=!1,Promise.resolve()},e.prototype.getMutationQueue=function(n){var t=this.mutationQueues[n.toKey()];return t||(t=new xr,this.mutationQueues[n.toKey()]=t),t},e.prototype.getQueryCache=function(){return this.queryCache},e.prototype.getRemoteDocumentCache=function(){return this.remoteDocumentCache},e.prototype.runTransaction=function(n,t){return So('MemoryPersistence','Starting transaction:',n),t(new Fr).toPromise()},e}(),Fr=function(){return function(){}}(),Br=function(){function e(){this.isEager=!1}return e.prototype.addGarbageSource=function(){},e.prototype.removeGarbageSource=function(){},e.prototype.addPotentialGarbageKey=function(){},e.prototype.collectGarbage=function(){return Gn.resolve(J())},e}(),Ur=function(){function e(){var o=this;this.promise=new Promise(function(t,e){o.resolve=t,o.reject=e})}return e}(),Vr=function(){function e(o,r,e){this.initialDelayMs=o,this.backoffFactor=r,this.maxDelayMs=e,this.reset()}return e.prototype.reset=function(){this.currentBaseMs=0},e.prototype.resetToMax=function(){this.currentBaseMs=this.maxDelayMs},e.prototype.backoffAndWait=function(){var n=new Ur,t=this.currentBaseMs+this.jitterDelayMs();return 0this.maxDelayMs&&(this.currentBaseMs=this.maxDelayMs),n.promise},e.prototype.jitterDelayMs=function(){return(Math.random()-.5)*this.currentBaseMs},e}(),Hr=this&&this.__extends||function(){var o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(o,t){for(var e in t)t.hasOwnProperty(e)&&(o[e]=t[e])};return function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}}(),Wr;!function(e){e[e.Initial=0]='Initial',e[e.Auth=1]='Auth',e[e.Open=2]='Open',e[e.Error=3]='Error',e[e.Backoff=4]='Backoff',e[e.Stopped=5]='Stopped'}(Wr||(Wr={}));var Zn=function(){function e(o,a,e,n){this.queue=o,this.connection=a,this.credentialsProvider=e,this.idle=!1,this.stream=null,this.listener=null,this.backoff=new Vr(n||1e3,1.5,6e4),this.state=Wr.Initial}return e.prototype.isStarted=function(){return this.state===Wr.Backoff||this.state===Wr.Auth||this.state===Wr.Open},e.prototype.isOpen=function(){return this.state===Wr.Open},e.prototype.start=function(e){return this.state===Wr.Error?void this.performBackoff(e):void(Ho(this.state===Wr.Initial,'Already started'),this.listener=e,this.auth())},e.prototype.stop=function(){this.isStarted()&&this.close(Wr.Stopped)},e.prototype.inhibitBackoff=function(){Ho(!this.isStarted(),'Can only inhibit backoff in a stopped state'),this.state=Wr.Initial,this.backoff.reset()},e.prototype.markIdle=function(){var e=this;this.idle=!0,this.queue.schedule(function(){return e.handleIdleCloseTimer()},6e4).catch(function(e){Ho(e.code===Gt.CANCELLED,'Received unexpected error in idle timeout closure. Expected CANCELLED, but was: '+e)})},e.prototype.sendRequest=function(e){this.cancelIdleCheck(),this.stream.send(e)},e.prototype.handleIdleCloseTimer=function(){return this.isOpen()&&this.idle?this.close(Wr.Initial):Promise.resolve()},e.prototype.cancelIdleCheck=function(){this.idle=!1},e.prototype.close=function(r,t){Ho(r==Wr.Error||V(t),'Can\'t provide an error when not in an error state.'),this.cancelIdleCheck(),r==Wr.Error?t&&t.code===Gt.RESOURCE_EXHAUSTED&&(o(''+t),o('Using maximum backoff delay to prevent overloading the backend.'),this.backoff.resetToMax()):this.backoff.reset(),null!==this.stream&&(this.tearDown(),this.stream.close(),this.stream=null),this.state=r;var e=this.listener;return this.listener=null,r==Wr.Stopped?Promise.resolve():e.onClose(t)},e.prototype.tearDown=function(){},e.prototype.auth=function(){var o=this;Ho(this.state===Wr.Initial,'Must be in initial state to auth'),this.state=Wr.Auth,this.credentialsProvider.getToken(!1).then(function(t){o.startStream(t)},function(t){o.queue.schedule(function(){if(o.state!==Wr.Stopped){var e=new Ht(Gt.UNKNOWN,'Fetching auth token failed: '+t.message);return o.handleStreamClose(e)}return Promise.resolve()})})},e.prototype.startStream=function(o){var a=this;if(this.state!==Wr.Stopped){Ho(this.state===Wr.Auth,'Trying to start stream in a non-auth state');var e=function(e,t){a.queue.schedule(function(){return a.stream===e?t():Promise.resolve()})};if(null!==this.listener){var n=this.startRpc(o);this.stream=n,this.stream.onOpen(function(){e(n,function(){return Ho(a.state===Wr.Auth,'Expected stream to be in state auth, but was '+a.state),a.state=Wr.Open,a.listener.onOpen()})}),this.stream.onClose(function(o){e(n,function(){return a.handleStreamClose(o)})}),this.stream.onMessage(function(o){e(n,function(){return a.onMessage(o)})})}}},e.prototype.performBackoff=function(n){var t=this;Ho(this.state===Wr.Error,'Should only perform backoff in an error case'),this.state=Wr.Backoff,this.backoff.backoffAndWait().then(function(){t.queue.schedule(function(){return t.state===Wr.Stopped?Promise.resolve():(t.state=Wr.Initial,t.start(n),Ho(t.isStarted(),'PersistentStream should have started'),Promise.resolve())})})},e.prototype.handleStreamClose=function(e){return Ho(this.isStarted(),'Can\'t handle server close on non-started stream'),So('PersistentStream','close with error: '+e),this.stream=null,this.close(Wr.Error,e)},e}(),qr=function(d){function t(t,l,n,r,o,i){var a=d.call(this,l,n,r,i)||this;return a.databaseInfo=t,a.serializer=o,a}return Hr(t,d),t.prototype.startRpc=function(e){return this.connection.openStream('Listen',e)},t.prototype.onMessage=function(o){this.backoff.reset();var t=this.serializer.fromWatchChange(o),e=this.serializer.versionFromListenResponse(o);return this.listener.onWatchChange(t,e)},t.prototype.watch=function(o){var t={database:this.serializer.encodedDatabaseId,addTarget:this.serializer.toTarget(o)},e=this.serializer.toListenRequestLabels(o);e&&(t.labels=e),this.sendRequest(t)},t.prototype.unwatch=function(n){var t={};t.database=this.serializer.encodedDatabaseId,t.removeTarget=n,this.sendRequest(t)},t}(Zn),jr=function(d){function t(t,l,n,r,o,i){var a=d.call(this,l,n,r,i)||this;return a.databaseInfo=t,a.serializer=o,a.y=!1,a}return Hr(t,d),Object.defineProperty(t.prototype,'handshakeComplete',{get:function(){return this.y},enumerable:!0,configurable:!0}),t.prototype.start=function(t){this.y=!1,d.prototype.start.call(this,t)},t.prototype.tearDown=function(){this.y&&this.writeMutations([])},t.prototype.startRpc=function(e){return this.connection.openStream('Write',e)},t.prototype.onMessage=function(o){if(Ho(!!o.streamToken,'Got a write response without a stream token'),this.lastStreamToken=o.streamToken,this.y){this.backoff.reset();var t=this.serializer.fromWriteResults(o.writeResults),e=this.serializer.fromVersion(o.commitTime);return this.listener.onMutationResult(e,t)}return Ho(!o.writeResults||0===o.writeResults.length,'Got mutation results for handshake'),this.y=!0,this.listener.onHandshakeComplete()},t.prototype.writeHandshake=function(){Ho(this.isOpen(),'Writing handshake requires an opened stream'),Ho(!this.y,'Handshake already completed');var e={};e.database=this.serializer.encodedDatabaseId,this.sendRequest(e)},t.prototype.writeMutations=function(o){var r=this;Ho(this.isOpen(),'Writing mutations requires an opened stream'),Ho(this.y,'Handshake must be complete before writing mutations'),Ho(0this.pendingWrites.length},e.prototype.outstandingWrites=function(){return this.pendingWrites.length},e.prototype.commit=function(e){Ho(this.canWriteMutations(),'commit called when batches can\'t be written'),this.lastBatchSeen=e.batchId,this.pendingWrites.push(e),this.shouldStartWriteStream()?this.startWriteStream():this.isNetworkEnabled()&&this.writeStream.handshakeComplete&&this.writeStream.writeMutations(e.mutations)},e.prototype.shouldStartWriteStream=function(){return this.isNetworkEnabled()&&!this.writeStream.isStarted()&&0t.indexOf('Firestore Test Simulated Error')&&setTimeout(function(){throw e},0),e}).then(function(){r.operationInProgress=!1})}),this.tail},e.prototype.verifyOperationInProgress=function(){Ho(this.operationInProgress,'verifyOpInProgress() called when no op in progress on this queue.')},e.prototype.drain=function(o){var t=this;return this.delayedOperations.forEach(function(e){e.handle&&(clearTimeout(e.handle),o?t.scheduleInternal(e.op).then(e.deferred.resolve,e.deferred.reject):e.deferred.reject(new Ht(Gt.CANCELLED,'Operation cancelled by shutdown')))}),this.delayedOperations=[],this.delayedOperationsCount=0,this.schedule(function(){return Promise.resolve()})},e}(),oo=function(){function e(e){this.uid=e}return e.prototype.isUnauthenticated=function(){return null==this.uid},e.prototype.toKey=function(){return this.isUnauthenticated()?'anonymous-user':'uid:'+this.uid},e.prototype.equals=function(e){return e.uid===this.uid},e.UNAUTHENTICATED=new e(null),e.GOOGLE_CREDENTIALS=new e('google-credentials-uid'),e.FIRST_PARTY=new e('first-party-uid'),e}(),io=function(){function e(n,o){this.user=o,this.type='OAuth',this.authHeaders={Authorization:'Bearer '+n}}return e}(),ao=function(){function e(){this.userListener=null}return e.prototype.getToken=function(){return Promise.resolve(null)},e.prototype.setUserChangeListener=function(e){Ho(!this.userListener,'Can only call setUserChangeListener() once.'),this.userListener=e,e(oo.UNAUTHENTICATED)},e.prototype.removeUserChangeListener=function(){Ho(null!==this.userListener,'removeUserChangeListener() when no listener registered'),this.userListener=null},e}(),so=function(){function e(n){var o=this;this.app=n,this.tokenListener=null,this.userCounter=0,this.userListener=null,this.tokenListener=function(){var e=o.getUser();o.currentUser&&e.equals(o.currentUser)||(o.currentUser=e,o.userCounter++,o.userListener&&o.userListener(o.currentUser))},this.userCounter=0,this.app.INTERNAL.addAuthTokenListener(this.tokenListener)}return e.prototype.getToken=function(o){var r=this;Ho(null!=this.tokenListener,'getToken cannot be called after listener removed.');var e=this.userCounter;return this.app.INTERNAL.getToken(o).then(function(n){if(r.userCounter!==e)throw new Ht(Gt.ABORTED,'getToken aborted due to uid change.');return n?(Ho('string'==typeof n.accessToken,'Invalid tokenData returned from getToken():'+n),new io(n.accessToken,r.currentUser)):null})},e.prototype.setUserChangeListener=function(e){Ho(!this.userListener,'Can only call setUserChangeListener() once.'),this.userListener=e,this.currentUser&&e(this.currentUser)},e.prototype.removeUserChangeListener=function(){Ho(null!=this.tokenListener,'removeUserChangeListener() called twice'),Ho(null!==this.userListener,'removeUserChangeListener() called when no listener registered'),this.app.INTERNAL.removeAuthTokenListener(this.tokenListener),this.tokenListener=null,this.userListener=null},e.prototype.getUser=function(){'function'!=typeof this.app.INTERNAL.getUid&&Wo('This version of the Firestore SDK requires at least version 3.7.0 of firebase.js.');var e=this.app.INTERNAL.getUid();return Ho(null===e||'string'==typeof e,'Received invalid UID: '+e),new oo(e)},e}(),uo=function(){function e(n,o){this.gapi=n,this.sessionIndex=o,this.type='FirstParty',this.user=oo.FIRST_PARTY,Ho(this.gapi&&this.gapi.auth&&this.gapi.auth.getAuthHeaderValueForFirstParty,'unexpected gapi interface')}return Object.defineProperty(e.prototype,'authHeaders',{get:function(){return{Authorization:this.gapi.auth.getAuthHeaderValueForFirstParty([]),"X-Goog-AuthUser":this.sessionIndex}},enumerable:!0,configurable:!0}),e}(),co=function(){function e(n,o){this.gapi=n,this.sessionIndex=o,Ho(this.gapi&&this.gapi.auth&&this.gapi.auth.getAuthHeaderValueForFirstParty,'unexpected gapi interface')}return e.prototype.getToken=function(){return Promise.resolve(new uo(this.gapi,this.sessionIndex))},e.prototype.setUserChangeListener=function(e){e(oo.FIRST_PARTY)},e.prototype.removeUserChangeListener=function(){},e}(),ho=this&&this.__extends||function(){var o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(o,t){for(var e in t)t.hasOwnProperty(e)&&(o[e]=t[e])};return function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}}(),lo=function(){function e(){}return e.delete=function(){return fo.instance},e.serverTimestamp=function(){return po.instance},e}(),fo=function(n){function t(){return n.call(this)||this}return ho(t,n),t.instance=new t,t}(lo),po=function(n){function t(){return n.call(this)||this}return ho(t,n),t.instance=new t,t}(lo),yo=s(lo,'Use FieldValue.() instead.'),Xr=/^__.*__$/,go=function(){function e(o,r,e){this.data=o,this.fieldMask=r,this.fieldTransforms=e}return e.prototype.toMutations=function(o,t){var e=[];return null===this.fieldMask?e.push(new rn(o,this.data,t)):e.push(new on(o,this.data,this.fieldMask,t)),0=n.docs.size,'Too many documents returned on a document query');var t=n.docs.get(e.q);s.next(new Oo(e.firestore,e.q,t,n.fromCache))}},error:t}),o=this._.listen(Pe.atPath(this.q.path),n,a);return function(){n.mute(),e._.unlisten(o)}},o.prototype.get=function(){var o=this;return m('DocumentReference.get',arguments,0),new Promise(function(a,e){var i=o.onSnapshotInternal({includeQueryMetadataChanges:!0,includeDocumentMetadataChanges:!0,waitForSyncWhenOnline:!0},{next:function(n){i(),!n.exists&&n.metadata.fromCache?e(new Ht(Gt.ABORTED,'Failed to get document because the client is offline.')):a(n)},error:e})})},o}(),Oo=function(){function e(o,a,e,n){this.Q=o,this.q=a,this.nt=e,this.rt=n}return e.prototype.data=function(){if(m('DocumentSnapshot.data',arguments,0),!this.nt)throw new Ht(Gt.NOT_FOUND,'This document doesn\'t exist. Check doc.exists to make sure the document exists before calling doc.data().');return this.convertObject(this.nt.data)},e.prototype.get=function(n){if(m('DocumentSnapshot.get',arguments,1),!this.nt)throw new Ht(Gt.NOT_FOUND,'This document doesn\'t exist. Check doc.exists to make sure the document exists before calling doc.get().');var t=this.nt.data.field(At('DocumentSnapshot.get',n));return void 0===t?void 0:this.convertValue(t)},Object.defineProperty(e.prototype,'id',{get:function(){return this.q.path.lastSegment()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,'ref',{get:function(){return new Ro(this.q,this.Q)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,'exists',{get:function(){return null!==this.nt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,'metadata',{get:function(){return{hasPendingWrites:null!==this.nt&&this.nt.hasLocalMutations,fromCache:this.rt}},enumerable:!0,configurable:!0}),e.prototype.convertObject=function(o){var a=this,e={};return o.forEach(function(n,t){e[n]=a.convertValue(t)}),e},e.prototype.convertValue=function(r){if(r instanceof Ne)return this.convertObject(r);if(r instanceof Ae)return this.convertArray(r);if(r instanceof De){var t=r.value(),e=this.Q.ensureClientConfigured().databaseId();return r.databaseId.equals(e)||o('Document '+this.q.path+' contains a document reference within a different database ('+r.databaseId.projectId+'/'+r.databaseId.database+') which is not supported. It will be treated as a reference in the current database ('+e.projectId+'/'+e.database+') instead.'),new Ro(t,this.Q)}return r.value()},e.prototype.convertArray=function(n){var o=this;return n.internalValue.map(function(e){return o.convertValue(e)})},e}(),Mo=function(){function s(n,o){this.ot=n,this.firestore=o}return s.prototype.where=function(t,e,n){m('Query.where',arguments,3),b('Query.where','string',2,e),I('Query.where',3,n);var d=At('Query.where',t),i;if(!d.isKeyField())i=this.firestore._dataConverter.parseQueryValue('Query.where',n);else if('string'==typeof n){if(-1!==n.indexOf('/'))throw new Ht(Gt.INVALID_ARGUMENT,'Function Query.where() requires its third parameter to be a valid document ID if the first parameter is FieldPath.documentId(), but it contains a slash.');if(''===n)throw new Ht(Gt.INVALID_ARGUMENT,'Function Query.where() requires its third parameter to be a valid document ID if the first parameter is FieldPath.documentId(), but it was an empty string.');var o=this.ot.path.child(new re([n]));Ho(0==o.length%2,'Path should be a document key'),i=new De(this.firestore._databaseId,new ae(o))}else{if(!(n instanceof Ro))throw new Ht(Gt.INVALID_ARGUMENT,'Function Query.where() requires its third parameter to be a string or a DocumentReference if the first parameter is FieldPath.documentId(), but it was: '+k(n)+'.');i=new De(this.firestore._databaseId,n.q)}var a=W(d,Le.fromString(e),i);return this.validateNewFilter(a),new s(this.ot.addFilter(a),this.firestore)},s.prototype.orderBy=function(t,e){f('Query.orderBy',arguments,1,2),v('Query.orderBy','string',2,e);var n;if(void 0===e||'asc'===e)n=Fe.ASCENDING;else{if('desc'!==e)throw new Ht(Gt.INVALID_ARGUMENT,'Function Query.orderBy() has unknown direction \''+e+'\', expected \'asc\' or \'desc\'.');n=Fe.DESCENDING}if(null!==this.ot.startAt)throw new Ht(Gt.INVALID_ARGUMENT,'Invalid query. You must not call Query.startAt() or Query.startAfter() before calling Query.orderBy().');if(null!==this.ot.endAt)throw new Ht(Gt.INVALID_ARGUMENT,'Invalid query. You must not call Query.endAt() or Query.endBefore() before calling Query.orderBy().');var r=At('Query.orderBy',t),o=new qe(r,n);return this.validateNewOrderBy(o),new s(this.ot.addOrderBy(o),this.firestore)},s.prototype.limit=function(t){if(m('Query.limit',arguments,1),b('Query.limit','number',1,t),0>=t)throw new Ht(Gt.INVALID_ARGUMENT,'Invalid Query. Query limit ('+t+') is invalid. Limit must be positive.');return new s(this.ot.withLimit(t),this.firestore)},s.prototype.startAt=function(t){for(var e=[],n=1;nn.length)throw new Ht(Gt.INVALID_ARGUMENT,'Too many arguments provided to '+d+'(). The number of arguments must be less than or equal to the number of Query.orderBy() clauses');for(var r=[],o=0,i;o, or >=) must be on the same field. But you have inequality filters on \''+t+'\' and \''+o.field+'\'');var e=this.ot.getFirstOrderByField();null!==e&&this.validateOrderByAndInequalityMatch(o.field,e)}},s.prototype.validateNewOrderBy=function(n){if(null===this.ot.getFirstOrderByField()){var t=this.ot.getInequalityFilterField();null!==t&&this.validateOrderByAndInequalityMatch(t,n.field)}},s.prototype.validateOrderByAndInequalityMatch=function(n,t){if(!t.equals(n))throw new Ht(Gt.INVALID_ARGUMENT,'Invalid query. You have a where filter with an inequality (<, <=, >, or >=) on field \''+n+'\' and so you must also use \''+n+'\' as your first Query.orderBy(), but your first Query.orderBy() is on field \''+t+'\' instead.')},s}(),_o=function(){function e(o,r,e){this.Q=o,this.it=r,this.at=e,this._cachedChanges=null,this.metadata={fromCache:e.fromCache,hasPendingWrites:e.hasPendingWrites}}return Object.defineProperty(e.prototype,'docs',{get:function(){var n=[];return this.forEach(function(t){return n.push(t)}),n},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,'empty',{get:function(){return this.at.docs.isEmpty()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,'size',{get:function(){return this.at.docs.size},enumerable:!0,configurable:!0}),e.prototype.forEach=function(o,t){var e=this;f('QuerySnapshot.forEach',arguments,1,2),b('QuerySnapshot.forEach','function',1,o),this.at.docs.forEach(function(n){o.call(t,e.convertToDocumentImpl(n))})},Object.defineProperty(e.prototype,'query',{get:function(){return new Mo(this.it,this.Q)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,'docChanges',{get:function(){return this._cachedChanges||(this._cachedChanges=xt(this.Q,this.at)),this._cachedChanges},enumerable:!0,configurable:!0}),e.prototype.convertToDocumentImpl=function(e){return new Oo(this.Q,e.key,e,this.metadata.fromCache)},e}(),Po=function(o){function t(t,a){var n=o.call(this,Pe.atPath(t),a)||this;if(1!=t.length%2)throw new Ht(Gt.INVALID_ARGUMENT,'Invalid collection reference. Collection references must have an odd number of segments, but '+t.canonicalString()+' has '+t.length);return n}return To(t,o),Object.defineProperty(t.prototype,'id',{get:function(){return this.ot.path.lastSegment()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,'parent',{get:function(){var e=this.ot.path.popLast();return e.isEmpty()?null:new Ro(new ae(e),this.firestore)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,'path',{get:function(){return this.ot.path.canonicalString()},enumerable:!0,configurable:!0}),t.prototype.doc=function(n){if(f('CollectionReference.doc',arguments,0,1),0===arguments.length&&(n=zt.newId()),b('CollectionReference.doc','string',1,n),''===n)throw new Ht(Gt.INVALID_ARGUMENT,'Document path must be a non-empty string');var t=re.fromString(n);return Ro.forPath(this.ot.path.child(t),this.firestore)},t.prototype.add=function(n){m('CollectionReference.add',arguments,1),b('CollectionReference.add','object',1,n);var t=this.doc();return t.set(n).then(function(){return t})},t}(Mo),Lo=s(ko,'Use firebase.firestore() instead.'),Qr=s(No,'Use firebase.firestore().runTransaction() instead.'),Yr=s(Ao,'Use firebase.firestore().batch() instead.'),Jr=s(Ro,'Use firebase.firestore().doc() instead.'),$r=s(Oo),Zr=s(Mo),ea=s(_o),ta=s(Po,'Use firebase.firestore().collection() instead.'),na={Firestore:Lo,GeoPoint:Go,Blob:Yt,Transaction:Qr,WriteBatch:Yr,DocumentReference:Jr,DocumentSnapshot:$r,Query:Zr,QuerySnapshot:ea,CollectionReference:ta,FieldPath:Pn,FieldValue:yo,setLogLevel:ko.setLogLevel};t.registerFirestore=Mt,Mt(zo.default)},115:function(e,t,n){var d=Math.max,a=Math.floor;(function(t){(function(){function s(e){return'string'==typeof e}function o(){}function i(o){var r=typeof o;if('object'==r){if(!o)return'null';if(o instanceof Array)return'array';if(o instanceof Object)return r;var e=Object.prototype.toString.call(o);if('[object Window]'==e)return'object';if('[object Array]'==e||'number'==typeof o.length&&void 0!==o.splice&&void 0!==o.propertyIsEnumerable&&!o.propertyIsEnumerable('splice'))return'array';if('[object Function]'==e||void 0!==o.call&&void 0!==o.propertyIsEnumerable&&!o.propertyIsEnumerable('call'))return'function'}else if('function'==r&&void 0===o.call)return'object';return r}function l(e){return'array'==i(e)}function c(n){var t=i(n);return'array'==t||'object'==t&&'number'==typeof n.length}function h(e){return'function'==i(e)}function m(n){var o=typeof n;return'object'==o&&null!=n||'function'==o}function n(e){return e.call.apply(e.bind,arguments)}function p(o,a){if(!o)throw Error();if(2t?1:0}function j(n,t){t.unshift(n),u.call(this,v.apply(null,t)),t.shift()}function G(e){throw new j('Failure'+(e?': '+e:''),Array.prototype.slice.call(arguments,1))}function $(){0!=Ao&&(Lo[this[k]||(this[k]=++q)]=this),this.i=this.i,this.w=this.w}function w(a){t:{for(var t=qe,e=a.length,n=s(a)?a.split(''):a,r=0;rt?null:s(a)?a.charAt(t):a[t]}function Z(n){if(!l(n))for(var t=n.length-1;0<=t;t--)delete n[t];n.length=0}function _e(){return Array.prototype.concat.apply([],arguments)}function et(o){var t=o.length;if(0n.keyCode||void 0!=n.returnValue)){t:{var r=!1;if(0==n.keyCode)try{n.keyCode=-1;break t}catch(e){r=!0}(r||void 0==n.returnValue)&&(n.returnValue=!0)}for(n=[],r=t.a;r;r=r.parentNode)n.push(r);for(a=a.type,r=n.length-1;0<=r;r--){t.a=n[r];var o=Tt(n[r],a,!0,t);s=s&&o}for(r=0;rt.b&&(t.b++,n.next=t.a,t.a=n)}dr=!1}function zt(t,e){Lt.call(this),this.b=t||1,this.a=e||Io,this.f=f(this.ib,this),this.g=No()}function Kt(e){e.$=!1,e.K&&(e.a.clearTimeout(e.K),e.K=null)}function Gt(o,r,a){if(h(o))a&&(o=f(o,a));else{if(!o||'function'!=typeof o.handleEvent)throw Error('Invalid listener argument');o=f(o.handleEvent,o)}return 2147483647<+r?-1:Io.setTimeout(o,r||0)}function Xt(o,t,e){$.call(this),this.f=null==e?o:f(o,e),this.c=t,this.b=f(this.bb,this),this.a=[]}function Qt(e){e.X=Gt(e.b,e.c),e.f.apply(null,e.a)}function Yt(e){$.call(this),this.b=e,this.a={}}function C(e){y(e.a,function(n,t){this.a.hasOwnProperty(t)&&Et(n)},e),e.a={}}function Jt(o,t,e){this.reset(o,t,e,void 0,void 0)}function $t(e){this.f=e,this.b=this.c=this.a=null}function Zt(n,t){this.name=n,this.value=t}function D(e){return e.c?e.c:e.a?D(e.a):(G('Root logger has no level set.'),null)}function en(o){xr||(xr=new $t(''),vr['']=xr,xr.c=yr);var t;if(!(t=vr[o])){t=new $t(o);var e=o.lastIndexOf('.'),n=o.substr(e+1);e=en(o.substr(0,e)),e.b||(e.b={}),e.b[n]=t,t.a=e,vr[o]=t}return t}function tn(n,t){n&&n.log(gr,t,void 0)}function E(n,t){n&&n.log(fr,t,void 0)}function nn(n,t){n&&n.log(br,t,void 0)}function F(){this.a=en('goog.labs.net.webChannel.WebChannelDebug'),this.b=!0}function on(d,t,e,n,r,o){ln(d,function(){if(!d.b)i=o;else if(o){for(var i='',a=o.split('&'),s=0,p;so.length)){var i=o[1];if(l(i)&&!(1>i.length)){var a=i[0];if('noop'!=a&&'stop'!=a&&'close'!=a)for(var s=1;se;e++){n=t[e];try{return new ActiveXObject(n),o.b=n}catch(e){}}throw Error('Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed')}return o.b}function Sn(o,t,e,n){this.i=o,this.b=t,this.f=e,this.T=n||1,this.N=new Yt(this),this.S=Tr,o=this.H=new zt,o.b=wr,o.K&&o.$?(Kt(o),o.start()):o.K&&Kt(o),this.j=null,this.c=!1,this.m=this.g=this.h=this.J=this.D=this.U=this.w=null,this.s=[],this.a=null,this.F=0,this.l=this.o=null,this.C=-1,this.B=!1,this.P=0,this.I=null,this.M=!1}function K(n,t){return 0===n?'Non-200 return code ('+t+')':1===n?'XMLHTTP failure (no data)':2===n?'HttpConnection timeout':'Unknown error'}function En(o,t,e){o.J=1,o.h=Gn(P(t)),o.m=e,o.M=!0,Tn(o,null)}function kn(o,t,e,n){o.J=1,o.h=Gn(P(t)),o.m=null,o.M=e,Tn(o,n)}function Tn(t,e){t.D=No(),Ln(t),t.g=P(t.h),Q(t.g,'t',t.T),t.F=0,t.a=t.i.da(t.i.ia()?e:null),0t)&&(3!=t||Mo||a.a.V())){a.B||4!=t||7==e||un(8==e||0>=n?3:2),On(a);var r=a.a.W();a.C=r,(e=a.a.V())||dn(a.b,function(){return'No response text for uri '+a.g+' status '+r}),a.c=200==r,rn(a.b,a.o,a.g,a.f,a.T,t,r),a.c?(a.M?(In(a,t,e),Mo&&a.c&&3==t&&Nn(a)):(an(a.b,a.f,e,null),_n(a,e)),4==t&&Dn(a),a.c&&!a.B&&(4==t?a.i.ua(a):(a.c=!1,Ln(a)))):(400==r&&0t.length?Nr:(t=t.substr(n,e),o.F=n+e,t))}function Ln(t){t.U=No()+t.S,Rn(t,t.S)}function Rn(n,t){if(null!=n.w)throw Error('WatchDog timer not null');n.w=fn(f(n.cb,n),t)}function On(e){e.w&&(Io.clearTimeout(e.w),e.w=null)}function Pn(e){e.i.Ja()||e.B||e.i.ua(e)}function Dn(n){On(n);var t=n.I;t&&'function'==typeof t.Z&&t.Z(),n.I=null,Kt(n.H),C(n.N),n.a&&(t=n.a,n.a=null,t.abort(),t.Z())}function _n(n,t){try{n.i.Ma(n,t),un(4)}catch(t){I(n.b,t,'Error in httprequest callback')}}function Mn(o){if(o.v&&'function'==typeof o.v)return o.v();if(s(o))return o.split('');if(c(o)){for(var t=[],e=o.length,n=0;n2*n.c&&Vn(n),!0)}function Vn(a){if(a.c!=a.a.length){for(var t=0,e=0,n;tt)throw Error('Bad port number '+t);n.i=t}else n.i=null}function zn(o,t,e){t instanceof Zn?(o.c=t,ao(o.c,o.h)):(e||(t=Jn(t,Pr)),o.c=new Zn(t,o.h))}function Kn(o,t,e){o.c.set(t,e)}function Q(n,t,e){l(e)||(e=[e+'']),no(n.c,t,e)}function Gn(t){return Kn(t,'zx',a(2147483648*Math.random()).toString(36)+Math.abs(a(2147483648*Math.random())^No()).toString(36)),t}function Xn(e){return e instanceof Hn?P(e):new Hn(e,void 0)}function Qn(a,t,e,n){var r=new Hn(null,void 0);return a&&L(r,a),t&&qn(r,t),e&&jn(r,e),n&&(r.a=n),r}function Yn(n,t){return n?t?decodeURI(n.replace(/%25/g,'%2525')):decodeURIComponent(n):''}function Jn(o,t,e){return s(o)?(o=encodeURI(o).replace(t,$n),e&&(o=o.replace(/%25([0-9a-fA-F]{2})/g,'%$1')),o):null}function $n(e){return e=e.charCodeAt(0),'%'+(15&e>>4).toString(16)+(15&e).toString(16)}function Zn(n,t){this.b=this.a=null,this.c=n||null,this.f=!!t}function eo(o){o.a||(o.a=new Bn,o.b=0,o.c&&O(o.c,function(t,e){o.add(decodeURIComponent(t.replace(/\+/g,' ')),e)}))}function R(n,t){eo(n),t=ro(n,t),Wn(n.a.b,t)&&(n.c=null,n.b-=n.a.get(t).length,Un(n.a,t))}function to(n,t){return eo(n),t=ro(n,t),Wn(n.a.b,t)}function no(o,t,e){R(o,t),0=e.f}function be(n,t){return n.b?n.b==t:!!n.a&&n.a.contains(t)}function ce(n,t){n.a?n.a.add(t):n.b=t}function ae(n,t){n.b&&n.b==t?n.b=null:n.a&&n.a.contains(t)&&Un(n.a.a,S(t))}function de(n){if(null!=n.b)return n.c.concat(n.b.s);if(null!=n.a&&0!=n.a.a.c){var o=n.c;return Oo(n.a.v(),function(e){o=o.concat(e.s)}),o}return et(n.c)}function ee(n,t){n.c=n.c.concat(t)}function fe(){}function ge(){this.a=new fe}function he(o,a,e){var i=e||'';try{Fn(o,function(e,t){var n=e;m(e)&&(n=Pt(e)),a.push(i+t+'='+encodeURIComponent(n))})}catch(e){throw a.push(i+'type='+encodeURIComponent('_badmap')),e}}function ie(o,t){var e=new F;dn(e,'TestLoadImage: loading '+o);var n=new Image;n.onload=b(je,e,n,'TestLoadImage: loaded',!0,t),n.onerror=b(je,e,n,'TestLoadImage: error',!1,t),n.onabort=b(je,e,n,'TestLoadImage: abort',!1,t),n.ontimeout=b(je,e,n,'TestLoadImage: timeout',!1,t),Io.setTimeout(function(){n.ontimeout&&n.ontimeout()},1e4),n.src=o}function je(a,t,e,n,r){try{dn(a,e),t.onload=null,t.onerror=null,t.onabort=null,t.ontimeout=null,r(n)}catch(t){I(a,t)}}function ke(e){Lt.call(this),this.headers=new Bn,this.F=e||null,this.f=!1,this.D=this.a=null,this.M=this.s='',this.j=0,this.g='',this.h=this.I=this.o=this.H=!1,this.l=0,this.B=null,this.N=Br,this.C=this.m=!1}function T(e){return Fo&<(9)&&'number'==typeof e.timeout&&void 0!==e.ontimeout}function qe(e){return'content-type'==e.toLowerCase()}function Co(n,t){n.f=!1,n.a&&(n.h=!0,n.a.abort(),n.h=!1),n.g=t,n.j=5,oe(n),te(n)}function oe(e){e.H||(e.H=!0,e.dispatchEvent('complete'),e.dispatchEvent('error'))}function re(s){if(s.f&&void 0!==wo)if(s.D[1]&&4==pe(s)&&2==s.W())nn(s.b,M(s,'Local request error detected and ignored'));else if(s.o&&4==pe(s))Gt(s.La,0,s);else if(s.dispatchEvent('readystatechange'),4==pe(s)){nn(s.b,M(s,'Request complete')),s.f=!1;try{var t=s.W();t:switch(t){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var e=!0;break t;default:e=!1;}var n;if(!(n=e)){var r;if(r=0===t){var o=(s.s+'').match(Ar)[1]||null;if(!o&&Io.self&&Io.self.location){var d=Io.self.location.protocol;o=d.substr(0,d.length-1)}r=!le.test(o?o.toLowerCase():'')}n=r}n?(s.dispatchEvent('complete'),s.dispatchEvent('success')):(s.j=6,s.g=s.Ga()+' ['+s.W()+']',oe(s))}finally{te(s)}}}function te(a,t){if(a.a){se(a);var e=a.a,n=a.D[0]?o:null;a.a=null,a.D=null,t||a.dispatchEvent('ready');try{e.onreadystatechange=n}catch(t){(a=a.b)&&a.log(mr,'Problem encountered resetting onreadystatechange: '+t.message,void 0)}}}function se(e){e.a&&e.C&&(e.a.ontimeout=null),e.B&&(Io.clearTimeout(e.B),e.B=null)}function pe(e){return e.a?e.a.readyState:0}function M(n,t){return t+' ['+n.M+' '+n.s+' '+n.W()+']'}function U(n){var o='';return y(n,function(e,t){o+=t,o+=':',o+=e,o+='\r\n'}),o}function ue(a,t,e){t:{for(n in e){var n=!1;break t}n=!0}if(n)return a;if(e=U(e),s(a)){if(t=encodeURIComponent(t+''),e=null==e?'':'='+encodeURIComponent(e+''),t+=e){if(e=a.indexOf('#'),0>e&&(e=a.length),0>(n=a.indexOf('?'))||n>e){n=e;var r=''}else r=a.substring(n+1,e);a=[a.substr(0,n),r,a.substr(e)],e=a[1],a[1]=t?e?e+'&'+t:t:e,a=a[0]+(a[1]?'?'+a[1]:'')+a[2]}return a}return Kn(a,t,e),a}function ve(e){this.ya=0,this.g=[],this.a=new F,this.H=new go,this.ja=this.wa=this.F=this.ka=this.b=this.J=this.j=this.U=this.h=this.M=this.i=null,this.Ua=this.P=0,this.la=this.B=this.o=this.m=this.l=this.f=null,this.s=this.xa=this.N=-1,this.T=this.w=this.C=0,this.S=e&&e.supportsCrossDomainXhr||!1,this.I='',this.c=new bo(e&&e.concurrentRequestLimit),this.ma=new ge,this.D=!e||void 0===e.backgroundChannelTest||e.backgroundChannelTest,this.Ta=e&&e.fastHandshake||!1,e&&e.Ea&&this.a.Ea()}function we(t){if(dn(t.a,'disconnect()'),xe(t),3==t.G){var e=t.P++,n=P(t.F);Kn(n,'SID',t.I),Kn(n,'RID',e),Kn(n,'TYPE','terminate'),He(t,n),e=new Sn(t,t.a,e,void 0),e.J=2,e.h=Gn(P(n)),n=!1,Io.navigator&&Io.navigator.sendBeacon&&(n=Io.navigator.sendBeacon(''+e.h,'')),!n&&Io.Image&&(new Image().src=e.h,n=!0),n||(e.a=e.i.da(null),e.a.fa(e.h)),e.D=No(),Ln(e)}V(t)}function xe(e){e.B&&(e.B.abort(),e.B=null),e.b&&(e.b.cancel(),e.b=null),e.m&&(Io.clearTimeout(e.m),e.m=null),Eo(e),e.c.cancel(),e.l&&(Io.clearTimeout(e.l),e.l=null)}function ye(n,t){1e3==n.g.length&&H(n.a,function(){return'Already have 1000 queued maps upon queueing '+Pt(t)}),n.g.push(new yo(n.Ua++,t)),3==n.G&&Ce(n)}function Ce(e){xo(e.c)||e.l||(e.l=fn(f(e.Oa,e),0),e.C=0)}function De(o,t){var e=o.c;return(e.b?1:e.a?e.a.u():0)>=o.c.f-(o.l?1:0)?(H(o.a,'Unexpected retry request is scheduled.'),!1):o.l?(dn(o.a,'Use the retry request that is already scheduled.'),o.g=t.s.concat(o.g),!0):!(1==o.G||2==o.G||2<=o.C||(dn(o.a,'Going to retry POST'),o.l=fn(f(o.Oa,o,t),Be(o,o.C)),o.C++,0))}function Ee(o,t){var e=t?t.f:o.P++;var n=P(o.F);Kn(n,'SID',o.I),Kn(n,'RID',e),Kn(n,'AID',o.N),He(o,n),o.h&&o.i&&ue(n,o.h,o.i),e=new Sn(o,o.a,e,o.C+1),null===o.h&&(e.j=o.i),t&&(o.g=t.s.concat(o.g)),t=ze(o,e),e.setTimeout(10000+Math.round(1e4*Math.random())),ce(o.c,e),En(e,n,t)}function He(n,o){n.f&&Fn({},function(e,t){Kn(o,t,e)})}function ze(r,t){var e=Math.min(r.g.length,1e3),n=r.f?f(r.f.Va,r.f,r):null;t:for(var o=r.g,i=-1,a;;){a=['count='+e],-1==i?0(c-=i))i=d(0,o[p].a-100),s=!1;else try{he(u,a,'req'+c+'_')}catch(e){n&&n(u)}}if(s){n=a.join('&');break t}}return r=r.g.splice(0,e),t.s=r,n}function Ge(n){if(!n.b&&!n.m){n.T=1;var t=n.Na;cr||qt(),dr||(cr(),dr=!0),lr.add(t,n),n.w=0}}function Ie(e){return e.b||e.m?(H(e.a,'Request already in progress'),!1):!(3<=e.w||(dn(e.a,'Going to retry GET'),e.T++,e.m=fn(f(e.Na,e),Be(e,e.w)),e.w++,0))}function Je(o,t,e){dn(o.a,'Test Connection Finished');var n=t.m;n&&vo(o.c,n),o.la=e,o.s=t.f,dn(o.a,'connectChannel_()'),o.F=Ae(o,o.ka),Ce(o)}function So(n,t){dn(n.a,'Test Connection Failed'),n.s=t.f,Fe(n,2)}function Eo(e){null!=e.o&&(Io.clearTimeout(e.o),e.o=null)}function Be(o,t){var e=5e3+a(1e4*Math.random());return o.ra()||(dn(o.a,'Inactive channel'),e*=2),e*t}function Fe(r,t){if(ln(r.a,'Error code '+t),2==t){var e=null;r.f&&(e=null);var n=f(r.hb,r);e||(e=new Hn('//www.google.com/images/cleardot.gif'),Io.location&&'http'==Io.location.protocol||L(e,'https'),Gn(e)),ie(''+e,n)}else mn(2);dn(r.a,'HttpChannel: error - '+t),r.G=0,r.f&&r.f.Ba(t),V(r),xe(r)}function V(n){if(n.G=0,n.s=-1,n.f){var t=de(n.c);0==t.length&&0==n.g.length||(dn(n.a,function(){return'Number of undelivered maps, pending: '+t.length+', outgoing: '+n.g.length}),n.c.c.length=0,et(n.g),n.g.length=0),n.f.Aa()}}function Ae(n,t){return t=ko(n,null,t),dn(n.a,'GetForwardChannelUri: '+t),t}function Ke(o,t,e){return t=ko(o,o.ia()?t:null,e),dn(o.a,'GetBackChannelUri: '+t),t}function ko(a,t,e){var n=Xn(e);if(''!=n.b)t&&qn(n,t+'.'+n.b),jn(n,n.i);else{var r=Io.location,i;i=t?t+'.'+r.hostname:r.hostname,n=Qn(r.protocol,i,r.port,e)}return a.U&&y(a.U,function(o,t){Kn(n,t,o)}),t=a.j,e=a.J,t&&e&&Kn(n,t,e),Kn(n,'VER',a.oa),He(a,n),n}function Le(){}function Me(){for(var t=arguments[0],e=1,n;ethis.c)throw Error(Ur);this.a=new Pe,this.b=new fo,this.g=null,this.ba()}function Ve(n){if('function'==typeof n.Z)n.Z();else for(var t in n)n[t]=null}function Xe(n,t){this.a=n,this.b=t}function Ye(o){if(this.a=[],o)t:{if(o instanceof Ye){var t=o.O();if(o=o.v(),0>=this.u()){for(var e=this.a,n=0;n>1,o[n].a>e.a);)o[t]=o[n],t=n;o[t]=e}function $e(){Ye.call(this)}function To(n,t){this.f=new $e,Ue.call(this,n,t)}function X(o,t,e,n){this.l=o,this.j=!!n,To.call(this,t,e)}var wo=wo||{},Io=this,k='closure_uid_'+(1e9*Math.random()>>>0),q=0,No=Date.now||function(){return+new Date},t;r(u,Error),u.prototype.name='CustomError';var g=String.prototype.trim?function(e){return e.trim()}:function(e){return e.replace(/^[\s\xa0]+|[\s\xa0]+$/g,'')};r(j,u),j.prototype.name='AssertionError';var Ao=0,Lo={};$.prototype.i=!1,$.prototype.Z=function(){},$.prototype.A=function(){if(this.w)for(;this.w.length;)this.w.shift()()};var Ro=Array.prototype.indexOf?function(n,t){return Array.prototype.indexOf.call(n,t,void 0)}:function(o,t){if(s(o))return s(t)&&1==t.length?o.indexOf(t,0):-1;for(var e=0;eparseFloat(Ho)){Wo=jo+'';break t}}Wo=Ho}var zo={},Ko=Io.document,Go;Go=Ko&&Fo?dt()||('CSS1Compat'==Ko.compatMode?parseInt(Wo,10):5):void 0;var Xo=Object.freeze||function(e){return e},Qo=!Fo||9<=+Go,Yo=Fo&&!lt('9'),Jo=function(){if(!Io.addEventListener||!Object.defineProperty)return!1;var n=!1,t=Object.defineProperty({},'passive',{get:function(){n=!0}});return Io.addEventListener('test',o,t),Io.removeEventListener('test',o,t),n}();pt.prototype.b=function(){this.Pa=!1},r(A,pt);var $o=Xo({2:'touch',3:'pen',4:'mouse'});A.prototype.b=function(){A.L.b.call(this);var e=this.c;if(e.preventDefault)e.preventDefault();else if(e.returnValue=!1,Yo)try{(e.ctrlKey||112<=e.keyCode&&123>=e.keyCode)&&(e.keyCode=-1)}catch(e){}};var Zo='closure_listenable_'+(0|1e6*Math.random()),er=0;mt.prototype.add=function(s,t,e,n,d){var o=''+s;(s=this.a[o])||(s=this.a[o]=[],this.b++);var i=yt(s,t,n,d);return-1>>0);r(Lt,$),Lt.prototype[Zo]=!0,t=Lt.prototype,t.addEventListener=function(o,t,e,n){bt(this,o,t,e,n)},t.removeEventListener=function(o,t,e,n){St(this,o,t,e,n)},t.dispatchEvent=function(d){var t=this.J,n;if(t)for(n=[];t;t=t.J)n.push(t);t=this.P;var e=d.type||d;if(s(d))d=new pt(d,t);else if(d instanceof pt)d.target=d.target||t;else{var r=d;d=new pt(e,t),at(d,r)}if(r=!0,n)for(var o=n.length-1,i;0<=o;o--)i=d.a=n[o],r=B(i,e,!0,d)&&r;if(i=d.a=t,r=B(i,e,!0,d)&&r,r=B(i,e,!1,d)&&r,n)for(o=0;o=D(this).value)for(h(t)&&(t=t()),o=new Jt(o,t+'',this.f),e&&(o.a=e),e=this;e;)e=e.a};var vr={},xr=null;F.prototype.Ea=function(){this.b=!1};var Cr=new Lt;r(cn,pt),r(hn,pt),r(J,pt);var Sr={NO_ERROR:0,jb:1,qb:2,pb:3,mb:4,ob:5,rb:6,Ra:7,TIMEOUT:8,ub:9},Er={lb:'complete',yb:'success',Sa:'error',Ra:'abort',wb:'ready',xb:'readystatechange',TIMEOUT:'timeout',sb:'incrementaldata',vb:'progress',nb:'downloadprogress',zb:'uploadprogress'};yn.prototype.a=null;var kr;r(vn,yn),kr=new vn;var Tr=45e3,wr=250,Ir={},Nr={};t=Sn.prototype,t.setTimeout=function(e){this.S=e},t.fb=function(n){n=n.target;var t=this.I;t&&3==pe(n)?(dn(this.b,'Throttling readystatechange.'),t.Xa()):this.Qa(n)},t.Qa=function(n){try{n==this.a?wn(this):tn(this.b.a,'Called back with an unexpected xmlhttp')}catch(e){if(dn(this.b,'Failed call to OnXmlHttpReadyStateChanged_'),this.a&&this.a.V()){var t=this;I(this.b,e,function(){return'ResponseText: '+t.a.V()})}else I(this.b,e,'No response text')}},t.eb=function(){var n=pe(this.a),t=this.a.V();this.Ft&&this.la&&0==this.w&&!this.o&&(this.o=fn(f(this.$a,this),6e3)))}else if(this.b==n&&Eo(this),!/^[\s\xa0]*$/.test(t))for(t=e=this.ma.a.parse(t),e=0;et-this.g)){for(var e;0this.c&&0=r)o=void 0;else{if(1==r)Z(n);else{n[0]=n.pop(),n=0,l=l.a,r=l.length;for(var i=l[n];n>1;){var a=2*n+1,s=2*n+2;if(a=si.a)break;l[n]=l[a],n=a}l[n]=i}o=o.b}o.apply(this,[t])}},t.na=function(e){To.L.na.call(this,e),this.sa()},t.ba=function(){To.L.ba.call(this),this.sa()},t.A=function(){To.L.A.call(this),Io.clearTimeout(void 0),Z(this.f.a),this.f=null},r(X,To),X.prototype.qa=function(){var o=new ke,t=this.l;return t&&t.forEach(function(t,e){o.headers.set(e,t)}),this.j&&(o.m=!0),o},X.prototype.ta=function(e){return!e.i&&!e.a},Ne.prototype.createWebChannel=Ne.prototype.a,Oe.prototype.send=Oe.prototype.l,Oe.prototype.open=Oe.prototype.j,Oe.prototype.close=Oe.prototype.close,Sr.NO_ERROR=0,Sr.TIMEOUT=8,Sr.HTTP_ERROR=6,Er.COMPLETE='complete',po.EventType=Mr,Mr.OPEN='a',Mr.CLOSE='b',Mr.ERROR='c',Mr.MESSAGE='d',Lt.prototype.listen=Lt.prototype.aa,X.prototype.getObject=X.prototype.ea,X.prototype.releaseObject=X.prototype.gb,ke.prototype.listenOnce=ke.prototype.Ha,ke.prototype.getLastError=ke.prototype.Za,ke.prototype.getLastErrorCode=ke.prototype.Fa,ke.prototype.getStatus=ke.prototype.W,ke.prototype.getStatusText=ke.prototype.Ga,ke.prototype.getResponseJson=ke.prototype.Ya,ke.prototype.getResponseText=ke.prototype.V,ke.prototype.getResponseText=ke.prototype.V,ke.prototype.send=ke.prototype.fa,e.exports={createWebChannelTransport:ne,ErrorCode:Sr,EventType:Er,WebChannel:po,XhrIoPool:X}}).call(void 0===t?'undefined'==typeof self?'undefined'==typeof window?{}:window:self:t)}).call(t,n(12))}},[113])}catch(e){throw Error('Cannot instantiate firebase-firestore.js - be sure to load firebase-app.js first.')} \ No newline at end of file +(function(e){function t(n){if(o[n])return o[n].exports;var r=o[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n=window.webpackJsonp;window.webpackJsonp=function(o,s,l){for(var d=0,i=[],c,p,u;de}function c(e,t,n){return t=t||65,n=n||90,e&=-33,e>=t&&e<=n}function p(e){return d(e)||c(e)}function u(e){return 32===e||9===e||160===e}function m(e){return u(e)||10===e||13===e}function h(e,t,n,o){o=o?fr({},kr,o):kr;const r=e.pos;if(e.eat(t)){for(let i=1,s;!e.eof();)if(!vr(e,o))if(s=e.next(),s===t)i++;else if(s!==n)s===o.escape&&e.next();else if(i--,!i)return e.start=r,!0;if(e.pos=r,o.throws)throw e.error(`Unable to find matching pair for ${cr(t)}`)}return!1}function g(e,t,n){n=n||f;const o=t.map((e,t)=>({order:t,field:e,end:e.location+e.length})).sort((e,t)=>e.end-t.end||e.order-t.order);let r=0;const i=o.map((t)=>{const o=e.substr(t.field.location,t.field.length),i=e.slice(r,t.field.location);return r=t.end,i+n(t.field.index,o)});return i.join("")+e.slice(r)}function f(e,t){return t?`\${${e}:${t}}`:`\${${e}}`}function y(e,t){const n=e.pos;if(e.eat(Sr)){let n=x(e),o="";if(null!=n)return new Er(n,o,t);if(e.eat(wr)&&(n=x(e),null!=n&&(e.eat(Cr)&&(o=b(e)),e.eat(Tr))))return new Er(n,o,t)}e.pos=n}function b(e){let t;const n=[];for(e.start=e.pos;!e.eof();){if(t=e.peek(),t===wr)n.push(e.pos);else if(t===Tr){if(!n.length)break;n.pop()}e.next()}if(n.length)throw e.error("Unable to find matching \"}\" for curly brace at "+n.pop());return e.current()}function x(e){if(e.start=e.pos,e.eatWhile(d))return+e.current()}function v(e){return e===_r||e===Or}function k(e){const t=e.pos,n=e.prev();if(v(n))for(;!e.sol();)if(e.prev()===n&&e.peek()!==Mr)return!0;return e.pos=t,!1}function S(e){return C(e)||w(e)}function C(e){const t=e.pos;return k(e)&&e.eat(Ur)&&T(e)||(e.pos=t,!1)}function w(e){const t=e.pos;return e.eatWhile(L)&&e.eat(Ur)&&T(e)||(e.pos=t,!1)}function T(e){return e.eatWhile(E)}function E(e){return e===Br||e===Pr||A(e)||I(e)}function A(e){return e&=-33,65<=e&&90>=e}function I(e){return 47e}function N(e){return e===Rr||e===Dr}function L(e){return e&&e!==Ur&&!N(e)&&!v(e)}function _(e,t,n){for(v(e.charCodeAt(t))&&t++;B(e.charCodeAt(t),n.syntax);)t++;return t}function O(e,t,n){if(!n)return 0;const o=new Lr(e),r=(n+"").split("").map(jr);o.pos=t;for(let i;!o.sol();)if(!(M(o,zr,Wr)||M(o,Xr,Gr))){if(i=o.pos,D(o,r))return i;o.pos--}return-1}function M(e,t,n){const o=e.pos;if(e.eat(t))for(;!e.sol();){if(e.eat(n))return!0;e.pos--}return e.pos=o,!1}function D(e,t){const n=e.pos;let o=!1;for(let n=t.length-1;0<=n&&!e.sol()&&!!e.eat(t[n]);n--)o=0===n;return o||(e.pos=n),o}function R(e,t){return-1!==e.indexOf(t)}function P(e){return 64e||96e||47e||Qr.has(e)}function F(e,t){return e===Hr||"markup"===t&&(e===Wr||e===Gr)}function B(e,t){return e===Kr||"markup"===t&&(e===zr||e===Xr)}function U(e,t){return e instanceof ea?e:"string"==typeof e?new ea(e,t):e&&"object"==typeof e?new ea(e.name,e.value,e.options):void 0}function V(e){return(e+"").trim()}function q(e,t,n){return e&&n.indexOf(e)===t}function j(e){if(e.eat(oa))return e.start=e.pos,{count:e.eatWhile(d)?+e.current():null}}function W(e){if(vr(e,ra))return e.current().slice(1,-1)}function z(e){const t=e.pos;if(e.eat(aa)){for(let n=1,o="",r=e.pos,i;!e.eof();)if(i=e.next(),i===aa)n++;else if(i!==ia)i===sa&&(i=e.next(),(i===aa||i===ia)&&(o+=e.substring(r,e.pos-2)+cr(i),r=e.pos));else if(n--,!n)return e.start=t,o+e.substring(r,e.pos-1);throw e.pos=t,e.error(`Unable to find closing ${"}"} for text start`)}return null}function H(e){if(!e.eat(pa))return null;const t=[];for(let n,o;!e.eof();){if(e.eatWhile(u),e.eat(ua))return t;if(null!=(n=W(e)))t.push({name:null,value:n});else if(G(e))n=e.current(),ma.test(n)?(o=K(n),t.push(o),e.eat(ca)&&(null==(n=W(e))?null==(n=z(e))?G(e)&&(o.value=e.current()):(o.value=n,o.options={before:"{",after:"}"}):o.value=n)):t.push({name:null,value:n});else throw e.error("Expected attribute name")}throw e.error("Expected closing \"]\" brace")}function K(e){const t={};e.charCodeAt(0)===la&&(e=e.slice(1),t.implied=!0),e.charCodeAt(e.length-1)===da&&(e=e.slice(0,e.length-1),t.boolean=!0);const n={name:e};return Object.keys(t).length&&(n.options=t),n}function G(e){const t=e.pos;if(e.eatWhile(X))return e.start=t,!0}function X(e){return!m(e)&&!l(e)&&e!==pa&&e!==ua&&e!==ca}function Q(e){const t=e.pos,n=new na(J(e));for(let t;!e.eof();)if(e.eat(ga))n.addClass(J(e));else if(e.eat(ha))n.setAttribute("id",J(e));else if(e.eat(fa)){if(n.isGroup)throw e.backUp(1),e.error("Unexpected self-closing indicator");n.selfClosing=!0,(t=j(e))&&(n.repeat=t);break}else if(t=H(e))for(let e=0,o=t.length;e{const r=t.resolve(e.name);if(r&&!n.has(r)){if("function"==typeof r.value)return r.value(e,t,o);const i=Sa(r.value);n.add(r),i.walk(o),n.delete(r);const s=re(i);for(te(s,e);i.firstChild;)e.parent.insertBefore(i.firstChild,e);s.parent.insertBefore(e,s),s.remove()}};o(e)}function te(e,t){return t.name=e.name,e.selfClosing&&(t.selfClosing=!0),null!=e.value&&(t.value=e.value),e.repeat&&(t.repeat=Ca({},e.repeat)),ne(e,t)}function ne(e,t){oe(e,t);const n=new Map;let o=e.attributes;for(let r=0;rse(e,o))}function ie(e,t,n){for(let o=t.length-1;0<=o;o--){const i=t[o];let r=0,s=0,l=!1;if("@"===e.substr(i[0]+i[1],1)){"-"===e.substr(i[0]+i[1]+1,1)&&(l=!0);const t=e.substr(i[0]+i[1]+1+ +l).match(/^(\d+)/);t?(s=t[1].length+1+ +l,r=parseInt(t[1])-1):s=2}e=e.substring(0,i[0])+("function"==typeof n?n(e.substr(i[0],i[1]),r,l):n)+e.substring(i[0]+i[1]+s)}return e}function se(e,t){return[e,t]}function le(e){const t=de(e);if(t&&null!=t.value){const n=t.value,o=t.count;e.name=ce(e.name,n,o),e.value=ce(e.value,n,o),e.attributes.forEach((t)=>{const r=e.getAttribute(t.name).clone();r.name=ce(t.name,n,o),r.value=ce(t.value,n,o),e.replaceAttribute(t.name,r)})}return e}function de(e){for(;e;){if(e.repeat)return e.repeat;e=e.parent}}function ce(e,t,n){if("string"==typeof e){const o=pe(e);return ue(e,o,t,n)}return e}function pe(e){return ae(e||"",La).reduce((t,n)=>{if(!/[#{]/.test(e[n[0]+1]||"")){const e=t[t.length-1];e&&e[0]+e[1]===n[0]?e[1]+=n[1]:t.push(n)}return t},[])}function ue(e,t,n,o){const r=ie(e,t,(e,t,r)=>{let i=r?t+o-n+1+"":n+t+"";for(;i.length{if(e.repeat&&null===e.repeat.count){for(let n=0;n{e.repeat&&e.repeat.implicit&&(n=!0,fe(e,t[e.repeat.index]))}),n||ve(xe(e),t.join("\n"))}return e}function fe(e,t){let n=ye(e,t);return e.walk((e)=>n|=ye(e,t)),n||ve(xe(e),t),e}function ye(e,t){const n={replaced:!1};return e.value=be(e.value,t,n),e.attributes.forEach((o)=>{o.value&&e.setAttribute(o.name,be(o.value,t,n))}),n.replaced}function be(e,t,n){if("string"==typeof e){const o=ae(e,Oa);o.length&&(n&&(n.replaced=!0),e=ie(e,o,t))}return e}function xe(e){for(;e.children.length;)e=e.children[e.children.length-1];return e}function ve(e,t){if(e.value){const n=ae(e.value,Ma);if(n.length)return void(e.value=ie(e.value,n,t))}("a"===e.name.toLowerCase()||e.hasAttribute("href"))&&(Da.test(t)?e.setAttribute("href",(Pa.test(t)?"":"http://")+t):Ra.test(t)&&e.setAttribute("href","mailto:"+t)),e.value=t}function ke(e){const t=e.classList.reduce((e,t)=>{const n=t.indexOf("_");return 0{let i,s;const l=r;return(s=r.match(Ba))&&(i=we(e,t,s[1])+n.element+s[2],o.add(i),r=r.slice(s[0].length)),(s=r.match(Ua))&&(!i&&(i=we(e,t,s[1]),o.add(i)),o.add(`${i}${n.modifier}${s[2]}`),r=r.slice(s[0].length)),r===l&&o.add(l),o},new Set),r=Array.from(o).filter(Boolean);r.length&&e.setAttribute("class",r.join(" "))}function Ce(e){const t=new Map;return e.walk((e)=>{const n=e.classList;n.length&&t.set(e,Te(n,Va)||Te(n,qa)||t.get(e.parent))}),t}function we(e,t,n){for(let o=1{const o=t(new Qa(e,n));return o?o.toString(_e(e.children,t,n)):""}).join("")}function Oe(e,t){const n="object"==typeof e?e:Ir(e);let o=-1;return n.fields.forEach((e)=>{e.index+=t.index,e.index>o&&(o=e.index)}),-1!==o&&(t.index=o+1),n}function Me(e,t){if(null==e)return e;const n=[],o=(e,n,o,r)=>null==t[o]?"":n+t[o]+r;let r="",s=0,l=0,i,d;for(;l!e||t.index=t.get("inlineBreak"))return!0}for(let n=0,o=e.children.length;n{if(n.options.implied&&null==n.value)return null;const o=t.attribute(n.name);let r=null;if(n.options.boolean||-1!==t.get("booleanAttributes").indexOf(o.toLowerCase())){if(t.get("compactBooleanAttributes")&&null==n.value)return` ${o}`;null==n.value&&(r=o)}return null==r&&(r=e.renderFields(n.value)),` ${o}=${t.quote(r)}`}).join("")}function Ke(e,t){return e&&e.isTextOnly||Ge(e,t)}function Ge(e,t){return e&&t.isInline(e)}function Xe(e,t){const n=t.get("formatSkip")||[];let o=e.parent.isTextOnly?-2:-1,r=e;for(;r=r.parent;)-1===n.indexOf((r.name||"").toLowerCase())&&o++;return 0>o?0:o}function Qe(e,t){const n=e.node;if(t.enabled&&t.trigger&&n.name){const n=e.node.attributes.reduce((e,t)=>(t.name&&null!=t.value&&(e[t.name.toUpperCase().replace(/-/g,"_")]=t.value),e),{});for(let o=0,r=t.trigger.length;o{if(n.options.implied&&null==n.value)return null;const i=t.attribute(n.name),s=e.renderFields(n.value);if(oi.test(i))s&&o.push(`#${s}`);else if(ri.test(i))s&&o.push(`.${s.replace(/\s+/g,".")}`);else{const e=null==n.value&&(n.options.boolean||-1!==t.get("booleanAttributes").indexOf(i.toLowerCase()));r.push({name:i,value:s,isBoolean:e})}}),{PRIMARY_ATTRS:n.primary(o)||null,SECONDARY_ATTRS:n.secondary(r)||null}}function Ze(e){let t=e.parent.isTextOnly?-2:-1,n=e;for(;n=n.parent;)t++;return 0>t?0:t}function et(e,t){const n=e.node;return!n.isTextOnly&&n.value&&(e.beforeText=si.test(n.value)?e.newline+e.indent+t.indent(1):" "),e}function tt(e,t){if(null!=e.value&&si.test(e.value)){const n=De(e.value),o=t.indent(1),r=n.reduce((e,t)=>dr(e,t.length),0);return n.map((e,t)=>`${t?o:""}${nt(e,r)} |`).join("\n")}return e.value}function nt(e,t){for(;e.length`${n}${t?" ":"|"} ${e}`).join("\n")}return e.value}function at(e,t){return e&&(e.isTextOnly||t.isInline(e))}function it(e,t){const n=e.node;return!n.isTextOnly&&n.value&&(e.beforeText=ci.test(n.value)?e.newline+e.indent+t.indent(1):" "),e}function st(e,t){if(null!=e.value&&ci.test(e.value)){const n=t.indent(1);return De(e.value).map((e)=>`${n}| ${e}`).join("\n")}return e.value}function lt(e){return!!e&&e in pi}function dt(e){if(e.peek()===hi){e.start=e.pos,e.next(),e.eat(116)||e.eatWhile(ct);const t=e.current();if(e.start=e.pos,e.eat(gi)&&!e.eatWhile(d))throw e.error("Unexpected character for alpha value of color");return new fi(t,e.current())}}function ct(e){return d(e)||c(e,65,70)}function pt(e){return!(e%17)}function ut(e){return(e>>4).toString(16)}function mt(e){return ht(e.toString(16),2)}function ht(e,t){for(;e.lengthnew qi(e.key,e.value)))}function Mt(e){e=e.sort(Dt);const t=[];for(let n=0,o,r;ne.property===n.property),n);const o=Wt(e.name,t,"key",n.fuzzySearchMinScore);return o?o.property?Ut(e,o,n):Vt(e,o):"!"===e.name?jt(e,"!important"):e}function Ut(e,t,n){const o=e.name;if(e.name=t.property,e.value&&"object"==typeof e.value){const r=t.keywords();if(!e.value.size){let n=Wt(Ht(o,t.key),r);n||(n=t.defaultValue,n&&-1===n.indexOf("${")&&(n=`\${1:${n}}`)),n&&e.value.add(n)}else for(let t=0,o;t"string"==typeof e||"keyword"===e.type?(e+="",Wt(e,o,null,n.fuzzySearchMinScore)||e):e);return e.name=null,e.value.value=r,e}function jt(e,t){return e.name=null,e.value=t,e}function Wt(e,t,n,o){if(!e)return null;let r=null,s=0;o=o||0;for(let l=0,i;l=s&&(s=o,r=i)}return s>=o?r:null}function zt(e,t){const n=e&&"object"==typeof e?e[t]:e,o=(n||"").match(/^[\w-@]+/);return o?o[0]:n}function Ht(e,t){for(let n=0,o=0;n{const r=n.node;let i=Yt(r,o);if(r.attributes.length){const e=r.attributes.map((e)=>Yt(e,o));i=$t(i,e)}return n.open=r.name&&t.name(r.name),n.afterOpen=o.between,n.text=n.renderFields(i||null),!n.open||n.text&&n.text.endsWith(";")||(n.afterText=o.after),t.get("format")&&(n.newline="\n",e.lastChild!==r&&(n.afterText+=n.newline)),n})}function $t(e,t){const n=Ir(e),o=n.fields.length;if(o)for(t=t.slice(),t.length>o&&(t=t.slice(0,o-1).concat(t.slice(o-1).join(", ")));t.length;){const e=t.shift(),o=n.fields.shift(),r=e.length-o.length;n.string=n.string.slice(0,o.location)+e+n.string.slice(o.location+o.length);for(let e=0,t=n.fields.length;ee&&"object"==typeof e?"color"===e.type?e.toString(t.shortHex):e.toString():e+"").join(" "):null==e.value?"":e.value+""}function Zt(e){return!!e&&e in Xi}function en(e,t){let n=Xi[e];return"string"==typeof n&&(n=Xi[n]),Ki({},n,t&&t.format)}function tn(e){return!e.parent}function nn(e,t){return Math.floor(Math.random()*(t-e)+e)}function on(e,t){const n=e.length,o=lr(n,t),r=new Set;for(;r.sizee.length)return e;e=e.slice();const t=e.length,n=/,$/;let o=0;o=3=t?nn(0,1):6=t?nn(0,2):nn(1,4);for(let r=0,i;r{o.push("string"==typeof e?Ji[e]:e)}):"object"==typeof n&&o.push(n);const r=new os(o.filter(Boolean));return"stylesheet"!==e&&r.get(0).set(ls,yn),r}function yn(e){const t={},n=e.name.match(ls);return n[1]&&(t.lang=n[1]),n[2]&&(t.wordCount=+n[2]),es(e,t)}function bn(e,t){return t=kn(t),"stylesheet"===wn(t.type,t.syntax)?hn(e,t):un(e,t)}function xn(e,t){return t=kn(t),"stylesheet"===wn(t.type,t.syntax)?gn(e,t):mn(e,t)}function vn(e,t,n){return e&&"markup"!==e&&"stylesheet"!==e&&(n=t,t=e,e="markup"),n instanceof os?n:fn(e,t,n)}function kn(e){return"string"==typeof e&&(e={syntax:e}),e=ss({},ps,e),null==e.type&&e.syntax&&(e.type=Sn(e.syntax)?"stylesheet":"markup"),e.format=ss({field:e.field},e.format),e.profile=Cn(e),e.variables=ss({},ds,e.variables),e.snippets=vn(e.type,e.syntax,e.snippets),e}function Sn(e){return-1!==cs.indexOf(e)}function Cn(e){return e.profile instanceof is?e.profile:new is(e.profile)}function wn(e,t){return e?"stylesheet"===e?"stylesheet":"markup":Sn(t)?"stylesheet":"markup"}function Tn(e,t){if(e=e.toLowerCase(),t=t.toLowerCase(),e===t)return 1;if(!t||e.charCodeAt(0)!==t.charCodeAt(0))return 0;const n=e.length,o=t.length;let r=1,i=1,s=o,l,d,c,p;for(;rnew fs(e.key,e.value)))}function In(e){e=e.sort(Nn);const t=[];for(let n=0,o,r;n=s&&(s=o,r=i)}return s>=o?r:null}function Bn(e,t){const n=e&&"object"==typeof e?e[t]:e,o=(n||"").match(/^[\w-@]+/);return o?o[0]:n}function Un(e,t){for(let n=0,o=0;ne.charCodeAt(0))}function no(e){if(60===e.peek())return Bs(e)||qs(e)||Rs(e)}function oo(e,t){const n=e.pos;for(;!e.eof();){if(Zn(e,t))return e.pos=e.start,Rs(e);e.next()}return e.pos=n,null}function ro(e){return e.name?e.name.value.toLowerCase():`#${e.type}`}function ao(e){return e[e.length-1]}function io(e,t,n){t=t||e.getCursor();const o=so(e,t),r=hr(zs({field:Hs},e.getOption("emmet"),n),{syntax:o}),i=e.getModeAt(t);return"jsx"===o?(r.profile=zs({selfClosingStyle:"xml"},r.profile),r.options=zs({jsx:!0},r.options)):"xml"===i.name&&(r.profile=zs({selfClosingStyle:i.configuration},r.profile)),r}function so(e,t){const n=e.getMode();if("jsx"===n.name||"javascript"===n.name)return n.name;const o=e.getModeAt(t);return"xml"===o.name?"html":o.name}function lo(e,t){return e.line-t.line||e.ch-t.ch}function co(e){return e.getOption("indentWithTabs")?"\t":mo(" ",e.getOption("indentUnit"))}function po(e,t,n){let o=uo(t);const r=co(e);return"\t"!==r&&(o=o.map((e)=>e.replace(/^\t+/,(e)=>mo(r,e.length)))),n&&(o=o.map((e,t)=>t?n+e:e)),o.join("\n")}function uo(e){return Array.isArray(e)?e:e.split(/\r\n|\r|\n/g)}function mo(e,t){let n="";for(;0fo(t,e.to):0<=fo(t,e.from)&&0>=fo(t,e.to)}function fo(e,t){return e.line-t.line||e.ch-t.ch}function yo(e){return{from:e.start,to:e.end}}function bo(e,t,n){const o=new Ks(e,t);if(o.eatWhile(m),t=o.pos,n){for(o.pos=n,o.backUp();!o.sof()&&m(o.peek());)o.backUp();o.next(),n=o.pos}else n=t;return{from:t,to:n}}function xo(e,t){const n=t.line;for(let o=t.ch,r;0<=o;){if(r=e.getTokenAt({line:n,ch:o}),"property"===r.type)return r.string;if(r.start!==o)o=r.start;else break}}function vo(e,t){const n=e.getModeAt(t);if(n&&"css"===n.name){const n=e.getTokenAt(t),o=n.state&&n.state.localState||n.state;return o&&o.context&&"prop"===o.context.type}return!1}function ko(e,t,n){const o=io(e,t);if(n&&!So(e,t,o))return null;const r=Yr(e.getLine(t.line),t.ch,{lookAhead:!0,syntax:o.type,prefix:"jsx"===o.syntax&&e.getOption("jsxBracket")?"<":""});if(r){const i={line:t.line,ch:r.start},s={line:t.line,ch:r.end};return"stylesheet"===o.type&&n&&vo(e,t)&&(o.options=zs({property:xo(e,t)},o.options)),{abbreviation:r.abbreviation,range:{from:i,to:s},config:o}}}function So(e,t,n){const o=e.getTokenTypeAt(t);return"stylesheet"===n.type?"comment"!==o&&"string"!==o:"html"===n.syntax?null===o:"slim"===n.syntax||"pug"===n.syntax?null===o||"tag"===o||o&&/attribute/.test(o):"haml"===n.syntax?null===o||"attribute"===o:"jsx"===n.syntax}function Co(e,t,n){const o=e.getLine(t.from.line),r=o.match(/^\s+/);let i=po(e,n,r&&r[0]);const s=Ir(i);return e.operation(()=>{e.replaceRange(s.string,t.from,t.to);const n=e.indexFromPos(t.from);if(s.fields.length){const t=s.fields[0],o=e.posFromIndex(t.location+n),r=e.posFromIndex(t.location+t.length+n);e.setSelection(o,r)}else e.setCursor(e.posFromIndex(n+s.string.length));return!0})}function wo(e,t,n){const o=To(e,t);if(o&&o.model)return o.model;const r=ko(e,t,n);if(r)try{const t=new Xs(r.abbreviation,r.range,r.config);return t.valid(e,n)?t:null}catch(e){}}function To(e,t){const n=e.findMarksAt(t);for(let o=0,r;o_o(e,t));return t.some(Boolean)?void e.operation(()=>{let n=e.listSelections();const o=e.doc.lineSeparator();for(let r=n.length-1;0<=r;r--)e.replaceRange(t[r]?o+o:o,n[r].anchor,n[r].head,"+newline");n=e.listSelections();for(let o=0;o{if(t[o]){const t=n.from().line-1,o={line:t,ch:e.getLine(t).length};return{anchor:o,head:o}}return n}))}):e.constructor.Pass}function _o(e,t){if(Mo(t.anchor,t.head)){const n=t.anchor,o=e.getModeAt(n);if("xml"===o.name){const t=e.getTokenAt(n),o=e.getTokenAt(zs({},n,{ch:n.ch+1}));return"tag bracket"===t.type&&">"===t.string&&"tag bracket"===o.type&&"e.trim());n(e,"Enter abbreviation to wrap with:",(n)=>{if(n){const r=new Xs(n,t,io(e,t.from,{text:o}));r.insert(e)}})}else console.warn("Nothing to wrap")}function Ro(e){if(e.somethingSelected()){const t=e.listSelections().filter((e)=>e.anchor!==e.head)[0];if(t)return 0>fo(t.anchor,t.head)?{from:t.anchor,to:t.head}:{from:t.head,to:t.anchor}}return Po(e,e.getCursor())}function Po(e,t){const n=e.getEmmetDocumentModel(),o=n&&n.nodeForPoint(t);if(!o)return null;if(Fo(o.open,t)||Fo(o.close,t))return yo(o);const r=o.open.end,i=o.close?o.close.start:o.open.end;return bo(e,r,i)}function Fo(e,t){return e&&go(yo(e),t)}function Bo(e,t,n){n(window.prompt(t))}function Uo(e,t){const n=To(e,t);if(n)return n;Eo(e);const o=wo(e,t,!0);if(o)return Ao(e,o)}function Vo(e,t){t=t||e.getCursor();let n=[];const o=wo(e,t,!0);o&&o.abbreviation!==o.snippet&&n.push(Ko(e,t,o));const r=o?o.config:io(e,t);return n="stylesheet"===r.type?n.concat(jo(e,t,r)):n.concat(qo(e,t,r)),{type:r.type,syntax:r.syntax,abbreviation:o,completions:n.filter(Boolean)}}function qo(e,t,n){const o=e.getLine(t.line).slice(0,t.ch),r=Go(o,/[\w:\-$@]/);if(r){const o={from:{line:t.line,ch:t.ch-r.length},to:t};return Wo(e,t,n).filter((e)=>e.key!==r&&0===e.key.indexOf(r)).map((t)=>new Qs("snippet",e,o,t.key,t.preview,t.snippet))}return[]}function jo(e,t,n){const o=e.getLine(t.line).slice(0,t.ch),r=Go(o,/[\w-@$]/);if(r){const o={from:{line:t.line,ch:t.ch-r.length},to:t};if(n.options&&n.options.property){const i=n.options.property.toLowerCase(),s=Wo(e,t,n).find((e)=>e.property&&e.property===i);if(s&&s.keywords.length)return s.keywords.map((t)=>0===t.key.indexOf(r)&&new Qs("value",e,o,t.key,t.preview,t.snippet)).filter(Boolean)}else return Wo(e,t,n).filter((e)=>e.key!==r&&0===e.key.indexOf(r)).map((t)=>new Qs("snippet",e,o,t.key,t.preview,t.snippet))}return[]}function Wo(e,t,n){const{type:o,syntax:r}=n;e.state.emmetCompletions||(e.state.emmetCompletions={});const i=e.state.emmetCompletions;if(!(r in i)){const e=vn(o,r,n.snippets);i[r]="stylesheet"===o?zo(e,n):Ho(e,n)}return i[r]}function zo(e){return On(e).map((e)=>{let t=e.property;const n=e.keywords();return n.length?t+=`: ${ho(n.join(" | "))}`:e.value&&(t+=`: ${ho(e.value)}`),{key:e.key,value:e.value,snippet:e.key,property:e.property,keywords:n.map((e)=>{const t=e.match(/^[\w-]+/);return t&&{key:t[0],preview:ho(e),snippet:e}}).filter(Boolean),preview:t}})}function Ho(e,t){return e.all({type:"string"}).map((e)=>({key:e.key,value:e.value,preview:ho(bn(e.value,t)),snippet:e.key}))}function Ko(e,t,n){let o=n.preview;return 500n.insert(e,t))}function Go(e,t){let n=e.length;for(;0{e.className===$s?t=e:e.className===Ys&&(n=e)}),t?{open:t,close:n}:null}function tr(e){e.getAllMarks().forEach((e)=>{(e.className===$s||e.className===Ys)&&e.clear()})}function nr(e,t){const n=e.getEmmetDocumentModel();return n&&n.nodeForPoint(t||e.getCursor())}function or(e,t,n){return e.markText(t.start,t.end,{className:n,inclusiveLeft:!0,inclusiveRight:!0,clearWhenEmpty:!1})}function rr(e,t){const n=t.find();return n?e.getRange(n.from,n.to):""}function ar(e,t){const n=er(e),o=t.from;n&&(go(n.open.find(),o)&&n.close?ir(e,n.open,n.close):n.close&&go(n.close.find(),o)&&ir(e,n.close,n.open))}function ir(e,t,n){const o=sr(e,t),r=n.find(),i=o.match(/[\w:.-]+/),s=o?i&&i[0]:"";null==s?tr(e):e.getRange(r.from,r.to)!==s&&e.replaceRange(s,r.from,r.to)}function sr(e,t){const n=t.find();return n?e.getRange(n.from,n.to):""}var lr=Math.min,dr=Math.max,cr=String.fromCharCode,pr=Object.assign||function(e){for(var t=1,n;t=this.end}limit(e,t){return new this.constructor(this.string,e,t)}peek(){return this.string.charCodeAt(this.pos)}next(){if(this.pose.charCodeAt(0),Wr=jr("["),zr=jr("]"),Hr=jr("("),Kr=jr(")"),Gr=jr("{"),Xr=jr("}"),Qr=new Set(["#",".","*",":","$","-","_","!","@","%","^","+",">","/"].map(jr)),Jr=new Map().set(Wr,zr).set(Hr,Kr).set(Gr,Xr),$r={syntax:"markup",lookAhead:null,prefix:""};var Yr=function(e,t,n){t=lr(e.length,dr(0,null==t?e.length:t)),n="boolean"==typeof n?Nr({},$r,{lookAhead:n}):Nr({},$r,n),(null==n.lookAhead||!0===n.lookAhead)&&(t=_(e,t,n));let o;const r=O(e,t,n.prefix);if(-1===r)return null;const i=new Lr(e,r);i.pos=t;const s=[];for(;!i.sol();){if(o=i.peek(),B(o,n.syntax))s.push(o);else if(F(o,n.syntax)){if(s.pop()!==Jr.get(o))break;}else if(R(s,zr)||R(s,Xr)){i.pos--;continue}else if(qr(i)||!P(o))break;i.pos--}if(!s.length&&i.pos!==t){const o=e.slice(i.pos,t).replace(/^[*+>^]+/,"");return{abbreviation:o,location:t-o.length,start:n.prefix?r-n.prefix.length:t-o.length,end:t}}},Zr=Object.assign||function(e){for(var t=1,n;tthis.setAttribute(e))}get attributes(){return this._attributes}get attributesMap(){return this.attributes.reduce((e,t)=>(e[t.name]=t.options.boolean?t.name:t.value,e),{})}get isGroup(){return!this.name&&!this.value&&!this._attributes.length}get isTextOnly(){return!this.name&&!!this.value&&!this._attributes.length}get firstChild(){return this.children[0]}get lastChild(){return this.children[this.children.length-1]}get childIndex(){return this.parent?this.parent.children.indexOf(this):-1}get nextSibling(){return this.next}get previousSibling(){return this.previous}get classList(){const e=this.getAttribute("class");return e&&e.value?e.value.split(/\s+/g).filter(q):[]}create(t,n){return new e(t,n)}setAttribute(e,t){const n=U(e,t),o=this.getAttribute(e);o?this.replaceAttribute(o,n):this._attributes.push(n)}hasAttribute(e){return!!this.getAttribute(e)}getAttribute(e){"object"==typeof e&&(e=e.name);for(var t=0;tt!==e).join(" "))}appendChild(e){this.insertAt(e,this.children.length)}insertBefore(e,t){this.insertAt(e,this.children.indexOf(t))}insertAt(e,t){if(0>t||t>this.children.length)throw new Error("Unable to insert node: position is out of child list range");const n=this.children[t-1],o=this.children[t];e.remove(),e.parent=this,this.children.splice(t,0,e),n&&(e.previous=n,n.next=e),o&&(e.next=o,o.previous=e)}removeChild(e){const t=this.children.indexOf(e);-1!==t&&(this.children.splice(t,1),e.previous&&(e.previous.next=e.next),e.next&&(e.next.previous=e.previous),e.parent=e.next=e.previous=null)}remove(){this.parent&&this.parent.removeChild(this)}clone(t){const n=new e(this.name);return n.value=this.value,n.selfClosing=this.selfClosing,this.repeat&&(n.repeat=Zr({},this.repeat)),this._attributes.forEach((e)=>n.setAttribute(e.clone())),t&&this.children.forEach((e)=>n.appendChild(e.clone(!0))),n}walk(e,t){t=t||0;for(let n=this.firstChild;n;){const o=n.next;if(!1===e(n,t)||!1===n.walk(e,t+1))return!1;n=o}}use(e){const t=[this];for(var n=1;n{e=this.getAttribute(e.name);const t=e.options;let n=`${t&&t.implied?"!":""}${e.name||""}`;return t&&t.boolean?n+=".":null!=e.value&&(n+=`="${e.value}"`),n});let t=`${this.name||""}`;return e.length&&(t+=`[${e.join(" ")}]`),null!=this.value&&(t+=`{${this.value}}`),this.selfClosing&&(t+="/"),this.repeat&&(t+=`*${this.repeat.count?this.repeat.count:""}`,null!=this.repeat.value&&(t+=`@${this.repeat.value}`)),t}};var na=ta;const oa=42,ra={throws:!0},aa=123,ia=125,sa=92,la=33,da=46,ca=61,pa=91,ua=93,ma=/^\!?[\w\-:\$@]+\.?$/,ha=35,ga=46,fa=47,ya=40,ba=41,xa=43,va=62,ka=94;var Sa=function(e){const t=Y(e);return t.walk(Z),t},Ca=Object.assign||function(e){for(var t=1,n;tee(e,t)),e};const Ta=new Set(["a","abbr","acronym","applet","b","basefont","bdo","big","br","button","cite","code","del","dfn","em","font","i","iframe","img","input","ins","kbd","label","map","object","q","s","samp","select","small","span","strike","strong","sub","sup","textarea","tt","u","var"]),Ea={p:"span",ul:"li",ol:"li",table:"tr",tr:"td",tbody:"tr",thead:"tr",tfoot:"tr",colgroup:"col",select:"option",optgroup:"option",audio:"source",video:"source",object:"param",map:"area"};var Aa=function(e){return e=(e||"").toLowerCase(),Ea[e]||(Ta.has(e)?"span":"div")},Ia=Object.assign||function(e){for(var t=1,n;t{null==e.name&&e.attributes.length&&(e.name=Aa(e.parent.name))}),e};const La="$";var _a=function(e){return e.walk(le),e};const Oa="$#",Ma="|",Da=/^((?:https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/,Ra=/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/,Pa=/^([a-z]+:)?\/\//i,Fa={element:"__",modifier:"_"},Ba=/^(-+)([a-z0-9]+[a-z0-9-]*)/i,Ua=/^(_+)([a-z0-9]+[a-z0-9-_]*)/i,Va=(e)=>/^[a-z]\-/i.test(e),qa=(e)=>/^[a-z]/i.test(e);const ja=/^xsl:(variable|with\-param)$/i;const Wa={bem:function(e,t){t=Ia({},Fa,t),e.walk((e)=>ke(e,t));const n=Ce(e);return e.walk((e)=>Se(e,n,t)),e},jsx:function(e){return e.walk((e)=>{Ee(e,"class","className"),Ee(e,"for","htmlFor")}),e},xsl:function(e){return e.walk((e)=>{ja.test(e.name||"")&&(e.children.length||e.value)&&e.removeAttribute("select")}),e}};var za=function(e,t){return Object.keys(t||{}).forEach((n)=>{if(n in Wa){const o="object"==typeof t[n]?t[n]:null;e=e.use(Wa[n],o)}}),e},Ha=function(e,t,n){return"string"==typeof t?t=[t]:t&&"object"==typeof t&&!Array.isArray(t)&&(n=t,t=null),e.use(Na).use(he,Array.isArray(t)?t.length:null).use(_a).use(ge,t).use(za,n)},Ka=function(e,t){return t=t||{},e.walk((e)=>Ae(e,t)),e},Ga=Object.assign||function(e){for(var t=1,n;te;let Qa=class{constructor(e,t,n){"object"==typeof t&&(n=t,t=null),this.node=e,this._fieldsRenderer=t||Xa,this.open=null,this.beforeOpen="",this.afterOpen="",this.close=null,this.beforeClose="",this.afterClose="",this.text=null,this.beforeText="",this.afterText="",this.indent="",this.newline="",n&&Ga(this,n)}clone(){return new this.constructor(this.node,this)}indentText(e){const t=Le(e);if(1===t.length)return e;const n=this.newline||this.indent?this.newline:" ";return t.map((e,t)=>t?this.indent+e:e).join(n)}renderFields(e){return this._fieldsRenderer(e)}toString(e){const t=this._wrap(this.open,this.beforeOpen,this.afterOpen),n=this._wrap(this.close,this.beforeClose,this.afterClose),o=this._wrap(this.text,this.beforeText,this.afterText);return t+o+(null==e?"":e)+n}_wrap(e,t,n){return t=null==t?"":t,n=null==n?"":n,null==e?"":(e=t?e.replace(/^\s+/,""):e,e=n?e.replace(/\s+$/,""):e,t+this.indentText(e)+n)}};const Ja=(e,t)=>t||"";var $a=function(e,t,n){"undefined"==typeof n&&(n=t,t=null),t=t||Ja;const o={index:1};return _e(e.children,n,(e)=>null==e?t(o.index++):Oe(e,o).mark(t))},Ya=Object.assign||function(e){for(var t=1,n;t"},oi=/^id$/i,ri=/^class$/i,ai={primary:(e)=>e.join(""),secondary:(e)=>e.map((e)=>e.isBoolean?e.name:`${e.name}=${e.value}`).join(", ")},ii={open:null,close:null,omitName:/^div$/i,attributes:ai},si=/\n|\r/,li=/\n|\r/,di={none:"[ SECONDARY_ATTRS]",round:"[(SECONDARY_ATTRS)]",curly:"[{SECONDARY_ATTRS}]",square:"[[SECONDARY_ATTRS]"},ci=/\n|\r/,pi={html:function(e,t,n){n=Ya({},n);const o=Je(n);return $a(e,n.field,(e)=>{if(e=qe(e,t),!Be(e)){const n=e.node;if(n.name){const r=t.name(n.name),i=He(e,t);e.open=`<${r}${i}${n.selfClosing?t.selfClose():""}>`,n.selfClosing||(e.close=``),Qe(e,o.comment)}!n.value&&(n.children.length||n.selfClosing)||(e.text=e.renderFields(n.value))}return e})},haml:function(e,t,n){n=n||{};const o={open:"[%NAME][PRIMARY_ATTRS][(SECONDARY_ATTRS)][SELF_CLOSE]",selfClose:"/",attributes:{secondary(e){return e.map((e)=>e.isBoolean?`${e.name}${t.get("compactBooleanAttributes")?"":"=true"}`:`${e.name}=${t.quote(e.value)}`).join(" ")}}};return $a(e,n.field,(e)=>{if(e=$e(e,t,o),e=et(e,t),!Be(e)){const n=e.node;!n.value&&(n.children.length||n.selfClosing)||(e.text=e.renderFields(tt(n,t)))}return e})},slim:function(e,t,n){n=n||{};const o=n.attributeWrap&&di[n.attributeWrap]||di.none,r=o===di.none?(e)=>`${e.name}=true`:(e)=>e.name,i={open:`[NAME][PRIMARY_ATTRS]${o}[SELF_CLOSE]`,selfClose:"/",attributes:{secondary(e){return e.map((e)=>e.isBoolean?r(e):`${e.name}=${t.quote(e.value)}`).join(" ")}}};return $a(e,n.field,(e)=>{if(e=$e(e,t,i),e=ot(e,t),!Be(e)){const n=e.node;!n.value&&(n.children.length||n.selfClosing)||(e.text=e.renderFields(rt(n,t)))}return e})},pug:function(e,t,n){n=n||{};const o={open:"[NAME][PRIMARY_ATTRS][(SECONDARY_ATTRS)]",attributes:{secondary(e){return e.map((e)=>e.isBoolean?e.name:`${e.name}=${t.quote(e.value)}`).join(", ")}}};return $a(e,n.field,(e)=>{if(e=$e(e,t,o),e=it(e,t),!Be(e)){const n=e.node;!n.value&&(n.children.length||n.selfClosing)||(e.text=e.renderFields(st(n,t)))}return e})}};var ui=function(e,t,n,o){return"object"==typeof n&&(o=n,n=null),lt(n)||(n="html"),pi[n](e,t,o)};let mi=class{constructor(){this.type="css-value",this.value=[]}get size(){return this.value.length}add(e){this.value.push(e)}has(e){return-1!==this.value.indexOf(e)}toString(){return this.value.join(" ")}};const hi=35,gi=46;let fi=class{constructor(e,t){this.type="color",this.raw=e,this.alpha=+(null!=t&&""!==t?t:1),e=e.slice(1);let n=0,o=0,r=0;if("t"===e)this.alpha=0;else switch(e.length){case 0:break;case 1:n=o=r=e+e;break;case 2:n=o=r=e;break;case 3:n=e[0]+e[0],o=e[1]+e[1],r=e[2]+e[2];break;default:e+=e,n=e.slice(0,2),o=e.slice(2,4),r=e.slice(4,6);}this.r=parseInt(n,16),this.g=parseInt(o,16),this.b=parseInt(r,16)}toHex(e){const t=e&&pt(this.r)&&pt(this.g)&&pt(this.b)?ut:mt;return"#"+t(this.r)+t(this.g)+t(this.b)}toRGB(){const e=[this.r,this.g,this.b];return 1!==this.alpha&&e.push(this.alpha.toFixed(8).replace(/\.?0+$/,"")),`${3===e.length?"rgb":"rgba"}(${e.join(", ")})`}toString(e){return this.r||this.g||this.b||this.alpha?1===this.alpha?this.toHex(e):this.toRGB():"transparent"}};const yi=37,bi=46,xi=45;let vi=class{constructor(e,t){this.type="numeric",this.value=+e,this.unit=t||""}toString(){return`${this.value}${this.unit}`}};const ki=36,Si=45,Ci=64;let wi=class{constructor(e){this.type="keyword",this.value=e}toString(){return this.value}};const Ti={throws:!0};let Ei=class{constructor(e){this.type="string",this.value=e}toString(){return this.value}};const Ai=40,Ii=41,Ni=44;let Li=class{constructor(e,t){this.type="function",this.name=e,this.args=t||[]}toString(){return`${this.name}(${this.args.join(", ")})`}};const _i=33,Oi=36,Mi=45,Di=58,Ri=64;var Pi=function(e){const t=new na,n=new gr(e);for(;!n.eof();){let e=new na(Et(n));e.value=At(n);const o=Ct(n);if(o)for(let t=0;tBt(e,o,n)),e},Ki=Object.assign||function(e){for(var t=1,n;tsrc:m+img","ri:t|ri:type":"pic>src:t+img","!!!":"{}",doc:"html[lang=${lang}]>(head>meta[charset=${charset}]+meta:vp+meta:edge+title{${1:Document}})+body","!|html:5":"!!!+doc",c:"{}","cc:ie":"{}","cc:noie":"{${0}}"},css:{"@f":"@font-face {\n\tfont-family: ${1};\n\tsrc: url(${1});\n}","@ff":"@font-face {\n\tfont-family: '${1:FontName}';\n\tsrc: url('${2:FileName}.eot');\n\tsrc: url('${2:FileName}.eot?#iefix') format('embedded-opentype'),\n\t\t url('${2:FileName}.woff') format('woff'),\n\t\t url('${2:FileName}.ttf') format('truetype'),\n\t\t url('${2:FileName}.svg#${1:FontName}') format('svg');\n\tfont-style: ${3:normal};\n\tfont-weight: ${4:normal};\n}","@i|@import":"@import url(${0});","@kf":"@keyframes ${1:identifier} {\n\t${2}\n}","@m|@media":"@media ${1:screen} {\n\t${0}\n}",ac:"align-content:flex-start|flex-end|center|space-between|space-around|stretch",ai:"align-items:flex-start|flex-end|center|baseline|stretch",anim:"animation:${1:name} ${2:duration} ${3:timing-function} ${4:delay} ${5:iteration-count} ${6:direction} ${7:fill-mode}",animdel:"animation-delay:${1:time}",animdir:"animation-direction:normal|reverse|alternate|alternate-reverse",animdur:"animation-duration:${1:0}s",animfm:"animation-fill-mode:both|forwards|backwards",animic:"animation-iteration-count:1|infinite",animn:"animation-name",animps:"animation-play-state:running|paused",animtf:"animation-timing-function:linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(${1:0.1}, ${2:0.7}, ${3:1.0}, ${3:0.1})",ap:"appearance:none",as:"align-self:auto|flex-start|flex-end|center|baseline|stretch",b:"bottom",bd:"border:${1:1px} ${2:solid} ${3:#000}",bdb:"border-bottom:${1:1px} ${2:solid} ${3:#000}",bdbc:"border-bottom-color:#${1:000}",bdbi:"border-bottom-image:url(${0})",bdbk:"border-break:close",bdbli:"border-bottom-left-image:url(${0})|continue",bdblrs:"border-bottom-left-radius",bdbri:"border-bottom-right-image:url(${0})|continue",bdbrrs:"border-bottom-right-radius",bdbs:"border-bottom-style",bdbw:"border-bottom-width",bdc:"border-color:#${1:000}",bdci:"border-corner-image:url(${0})|continue",bdcl:"border-collapse:collapse|separate",bdf:"border-fit:repeat|clip|scale|stretch|overwrite|overflow|space",bdi:"border-image:url(${0})",bdl:"border-left:${1:1px} ${2:solid} ${3:#000}",bdlc:"border-left-color:#${1:000}",bdlen:"border-length",bdli:"border-left-image:url(${0})",bdls:"border-left-style",bdlw:"border-left-width",bdr:"border-right:${1:1px} ${2:solid} ${3:#000}",bdrc:"border-right-color:#${1:000}",bdri:"border-right-image:url(${0})",bdrs:"border-radius",bdrst:"border-right-style",bdrw:"border-right-width",bds:"border-style:none|hidden|dotted|dashed|solid|double|dot-dash|dot-dot-dash|wave|groove|ridge|inset|outset",bdsp:"border-spacing",bdt:"border-top:${1:1px} ${2:solid} ${3:#000}",bdtc:"border-top-color:#${1:000}",bdti:"border-top-image:url(${0})",bdtli:"border-top-left-image:url(${0})|continue",bdtlrs:"border-top-left-radius",bdtri:"border-top-right-image:url(${0})|continue",bdtrrs:"border-top-right-radius",bdts:"border-top-style",bdtw:"border-top-width",bdw:"border-width",bfv:"backface-visibility:hidden|visible",bg:"background:#${1:000}",bga:"background-attachment:fixed|scroll",bgbk:"background-break:bounding-box|each-box|continuous",bgc:"background-color:#${1:fff}",bgcp:"background-clip:padding-box|border-box|content-box|no-clip",bgi:"background-image:url(${0})",bgo:"background-origin:padding-box|border-box|content-box",bgp:"background-position:${1:0} ${2:0}",bgpx:"background-position-x",bgpy:"background-position-y",bgr:"background-repeat:no-repeat|repeat-x|repeat-y|space|round",bgsz:"background-size:contain|cover",bxsh:"box-shadow:${1:inset }${2:hoff} ${3:voff} ${4:blur} #${5:000}|none",bxsz:"box-sizing:border-box|content-box|border-box",c:"color:#${1:000}",cl:"clear:both|left|right|none",cm:"/* ${0} */",cnt:"content:'${0}'|normal|open-quote|no-open-quote|close-quote|no-close-quote|attr(${0})|counter(${0})|counters({$0})",coi:"counter-increment",colm:"columns",colmc:"column-count",colmf:"column-fill",colmg:"column-gap",colmr:"column-rule",colmrc:"column-rule-color",colmrs:"column-rule-style",colmrw:"column-rule-width",colms:"column-span",colmw:"column-width",cor:"counter-reset",cp:"clip:auto|rect(${1:top} ${2:right} ${3:bottom} ${4:left})",cps:"caption-side:top|bottom",cur:"cursor:pointer|auto|default|crosshair|hand|help|move|pointer|text",d:"display:block|none|flex|inline-flex|inline|inline-block|list-item|run-in|compact|table|inline-table|table-caption|table-column|table-column-group|table-header-group|table-footer-group|table-row|table-row-group|table-cell|ruby|ruby-base|ruby-base-group|ruby-text|ruby-text-group",ec:"empty-cells:show|hide",f:"font:${1:1em} ${2:sans-serif}",fef:"font-effect:none|engrave|emboss|outline",fem:"font-emphasize",femp:"font-emphasize-position:before|after",fems:"font-emphasize-style:none|accent|dot|circle|disc",ff:"font-family:serif|sans-serif|cursive|fantasy|monospace",fl:"float:left|right|none",fs:"font-style:italic|normal|oblique",fsm:"font-smoothing:antialiased|subpixel-antialiased|none",fst:"font-stretch:normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded",fv:"font-variant:normal|small-caps",fw:"font-weight:normal|bold|bolder|lighter",fx:"flex",fxb:"flex-basis:fill|max-content|min-content|fit-content|content",fxd:"flex-direction:row|row-reverse|column|column-reverse",fxf:"flex-flow",fxg:"flex-grow",fxsh:"flex-shrink",fxw:"flex-wrap:nowrap|wrap|wrap-reverse",fz:"font-size",fza:"font-size-adjust",h:"height",jc:"justify-content:flex-start|flex-end|center|space-between|space-around",l:"left",lg:"background-image:linear-gradient(${1})",lh:"line-height",lis:"list-style",lisi:"list-style-image",lisp:"list-style-position:inside|outside",list:"list-style-type:disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman",lts:"letter-spacing:normal",m:"margin",mah:"max-height",mar:"max-resolution",maw:"max-width",mb:"margin-bottom",mih:"min-height",mir:"min-resolution",miw:"min-width",ml:"margin-left",mr:"margin-right",mt:"margin-top",ol:"outline",olc:"outline-color:#${1:000}|invert",olo:"outline-offset",ols:"outline-style:none|dotted|dashed|solid|double|groove|ridge|inset|outset",olw:"outline-width|thin|medium|thick",op:"opacity",ord:"order",ori:"orientation:landscape|portrait",orp:"orphans",ov:"overflow:hidden|visible|hidden|scroll|auto",ovs:"overflow-style:scrollbar|auto|scrollbar|panner|move|marquee",ovx:"overflow-x:hidden|visible|hidden|scroll|auto",ovy:"overflow-y:hidden|visible|hidden|scroll|auto",p:"padding",pb:"padding-bottom",pgba:"page-break-after:auto|always|left|right",pgbb:"page-break-before:auto|always|left|right",pgbi:"page-break-inside:auto|avoid",pl:"padding-left",pos:"position:relative|absolute|relative|fixed|static",pr:"padding-right",pt:"padding-top",q:"quotes",qen:"quotes:'\\201C' '\\201D' '\\2018' '\\2019'",qru:"quotes:'\\00AB' '\\00BB' '\\201E' '\\201C'",r:"right",rsz:"resize:none|both|horizontal|vertical",t:"top",ta:"text-align:left|center|right|justify",tal:"text-align-last:left|center|right",tbl:"table-layout:fixed",td:"text-decoration:none|underline|overline|line-through",te:"text-emphasis:none|accent|dot|circle|disc|before|after",th:"text-height:auto|font-size|text-size|max-size",ti:"text-indent",tj:"text-justify:auto|inter-word|inter-ideograph|inter-cluster|distribute|kashida|tibetan",to:"text-outline:${1:0} ${2:0} ${3:#000}",tov:"text-overflow:ellipsis|clip",tr:"text-replace",trf:"transform:${1}|skewX(${1:angle})|skewY(${1:angle})|scale(${1:x}, ${2:y})|scaleX(${1:x})|scaleY(${1:y})|scaleZ(${1:z})|scale3d(${1:x}, ${2:y}, ${3:z})|rotate(${1:angle})|rotateX(${1:angle})|rotateY(${1:angle})|rotateZ(${1:angle})|translate(${1:x}, ${2:y})|translateX(${1:x})|translateY(${1:y})|translateZ(${1:z})|translate3d(${1:tx}, ${2:ty}, ${3:tz})",trfo:"transform-origin",trfs:"transform-style:preserve-3d",trs:"transition:${1:prop} ${2:time}",trsde:"transition-delay:${1:time}",trsdu:"transition-duration:${1:time}",trsp:"transition-property:${1:prop}",trstf:"transition-timing-function:${1:fn}",tsh:"text-shadow:${1:hoff} ${2:voff} ${3:blur} ${4:#000}",tt:"text-transform:uppercase|lowercase|capitalize|none",tw:"text-wrap:none|normal|unrestricted|suppress",us:"user-select:none",v:"visibility:hidden|visible|collapse",va:"vertical-align:top|super|text-top|middle|baseline|bottom|text-bottom|sub",w:"width",whs:"white-space:nowrap|pre|pre-wrap|pre-line|normal",whsc:"white-space-collapse:normal|keep-all|loose|break-strict|break-all",wid:"widows",wm:"writing-mode:lr-tb|lr-tb|lr-bt|rl-tb|rl-bt|tb-rl|tb-lr|bt-lr|bt-rl",wob:"word-break:normal|keep-all|break-all",wos:"word-spacing",wow:"word-wrap:none|unrestricted|suppress|break-word|normal",z:"z-index",zom:"zoom:1"},xsl:{"tm|tmatch":"xsl:template[match mode]","tn|tname":"xsl:template[name]",call:"xsl:call-template[name]",ap:"xsl:apply-templates[select mode]",api:"xsl:apply-imports",imp:"xsl:import[href]",inc:"xsl:include[href]",ch:"xsl:choose","wh|xsl:when":"xsl:when[test]",ot:"xsl:otherwise",if:"xsl:if[test]",par:"xsl:param[name]",pare:"xsl:param[name select]",var:"xsl:variable[name]",vare:"xsl:variable[name select]",wp:"xsl:with-param[name select]",key:"xsl:key[name match use]",elem:"xsl:element[name]",attr:"xsl:attribute[name]",attrs:"xsl:attribute-set[name]",cp:"xsl:copy[select]",co:"xsl:copy-of[select]",val:"xsl:value-of[select]","for|each":"xsl:for-each[select]",tex:"xsl:text",com:"xsl:comment",msg:"xsl:message[terminate=no]",fall:"xsl:fallback",num:"xsl:number[value]",nam:"namespace-alias[stylesheet-prefix result-prefix]",pres:"xsl:preserve-space[elements]",strip:"xsl:strip-space[elements]",proc:"xsl:processing-instruction[name]",sort:"xsl:sort[select order]",choose:"xsl:choose>xsl:when+xsl:otherwise",xsl:"!!!+xsl:stylesheet[version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform]>{\n|}","!!!":"{}"}},$i=Object.assign||function(e){for(var t=1,n;tthis._string.set(e,new ts(e,t)));else if(e instanceof RegExp)this._regexp.set(e,new ts(e,t));else throw new Error("Unknow snippet key: "+e);return this}get(e){if(!this.disabled){if(this._string.has(e))return this._string.get(e);const t=Array.from(this._regexp.keys());for(let n=0,o=t.length;nthis.set(t,e)):e&&"object"==typeof e&&Object.keys(e).forEach((t)=>this.set(t,e[t]))}reset(){this._string.clear(),this._regexp.clear()}values(){if(this.disabled)return[];const e=Array.from(this._string.values()),t=Array.from(this._regexp.values());return e.concat(t)}};var os=class{constructor(e){this._registry=[],Array.isArray(e)?e.forEach((e,t)=>this.add(t,e)):"object"==typeof e&&this.add(e)}get(e){for(let t=0;tt.level-e.level),n}remove(e){this._registry=this._registry.filter((t)=>t.level!==e&&t.store!==e)}resolve(e){for(let t=0;t{const o=n.key instanceof RegExp?"regexp":"string";e.type&&e.type!==o||t.has(n.key)||t.set(n.key,n)};return this._registry.forEach((e)=>{e.store.values().forEach(n)}),Array.from(t.values())}clear(){this._registry.length=0}},rs=Object.assign||function(e){for(var t=1,n;tt||"",text:null,profile:null,variables:{},snippets:{},options:null,format:null};var us=Object.assign||function(e){for(var t=1,n;t");var Bs=function(e){const t=e.pos;if(eo(e,Ps,Fs,!0)){const n=Ss(e,t);return n.type="comment",n}return null};const Us=to("");var qs=function(e){const t=e.pos;if(eo(e,Us,Vs,!0)){const n=Ss(e,t);return n.type="cdata",n}return null};const js={xml:!1,special:["script","style"],empty:["img","meta","link","br","base","hr","area","wbr","col","embed","input","param","source","track"]};var Ws=function(e,t){t=vs({},js,t);const n="string"==typeof e?new gr(e):e,o=new ks(n,"root"),r=new Set(t.empty),i=t.special.reduce((e,t)=>e.set(t,to(``)),new Map),s=(e,n)=>e.selfClosing||!t.xml&&r.has(n);for(let r=[o],l,d,c;!n.eof();)if(!(l=no(n)))n.next();else if(c=ro(l),"open"===l.type)d=new ks(n,"tag",l),ao(r).addChild(d),i.has(c)?d.close=oo(n,i.get(c)):!s(l,c)&&r.push(d);else if("close"===l.type){for(let e=r.length-1;0`\${${e}${t?":"+t:""}}`;let Ks=class extends gr{constructor(e,t,n){super();const o=e.constructor;this.editor=e,this.start=this.pos=t||o.Pos(0,0);const r=e.lastLine();this._eof=n?n.to:o.Pos(r,this._lineLength(r)),this._sof=n?n.from:o.Pos(0,0)}sof(){return 0>=lo(this.pos,this._sof)}eof(){return 0<=lo(this.pos,this._eof)}limit(e,t){return new this.constructor(this.editor,e,{from:e,to:t})}peek(){const{line:e,ch:t}=this.pos,n=this.editor.getLine(e);return t=this._lineLength(this.pos.line)&&(this.pos.line++,this.pos.ch=0),this.eof()&&(this.pos=zs({},this._eof)),e}return NaN}backUp(e){const t=this.editor.constructor;let{line:n,ch:o}=this.pos;for(o-=e||1;0<=n&&0>o;)n--,o+=this._lineLength(n);return this.pos=0>n||0>o?t.Pos(0,0):t.Pos(n,o),this.peek()}current(){return this.substring(this.start,this.pos)}substring(e,t){return this.editor.getRange(e,t)}error(e){const t=new Error(`${e} at line ${this.pos.line}, column ${this.pos.ch}`);return t.originalMessage=e,t.pos=this.pos,t.string=this.string,t}_lineLength(e){const t=e===this.editor.lastLine();return this.editor.getLine(e).length+(t?0:1)}};const Gs="emmet-abbreviation";let Xs=class{constructor(e,t,n){this.abbreviation=e,this.range=t,this.config=n,this.ast=xn(e,n),this.snippet=bn(this.ast,n),this.preview=ho(this.snippet)}insert(e,t){return Co(e,t||this.range,this.snippet)}valid(e,t){return this.preview&&this.abbreviation!==this.preview&&(t&&"stylesheet"===this.config.type?this._isValidForStylesheet(e):!0)}_isValidForStylesheet(e){const t=this.range.from,n=e.getTokenAt(t);if(/^[#!]/.test(this.abbreviation))return vo(e,t);const o=this.ast.children.every((e)=>e.name),r=n.state&&n.state.localState||n.state;return!o||"sass"===this.config.syntax||r&&r.context&&"block"===r.context.type}},Qs=class{constructor(e,t,n,o,r,i){this.type=e,this.editor=t,this.range=n,this.name=o,this.preview=r,this.snippet=i,this._inserted=!1}insert(){this._inserted||(this._inserted=!0,"function"==typeof this.snippet?this.snippet(this.editor,this.range):Co(this.editor,this.range,this.snippet),Eo(this.editor))}},Js=class{constructor(e,t,n){this.dom=e,this.type=t,this.syntax=n}nodeForPoint(e,t){let n=this.dom.firstChild,o=null;for(;n;)go(yo(n),e,t)?(o=n,n=n.firstChild):n=n.nextSibling;return o}};const $s="emmet-open-tag",Ys="emmet-close-tag";t.a=function(e){zs(e.commands,{emmetExpandAbbreviation:(e)=>No(e,!0),emmetExpandAbbreviationAll:(e)=>No(e,!1),emmetInsertLineBreak:Lo,emmetWrapWithAbbreviation:Do});const t=(e)=>Uo(e,e.getCursor());e.defineOption("markEmmetAbbreviation",!0,(e,n)=>{n?e.on("change",t):(e.off("change",t),Eo(e))}),e.defineOption("autoRenameTags",!0,(e,t)=>{t?e.on("change",ar):e.off("change",ar)}),e.defineOption("jsxBracket",!0),e.defineOption("markTagPairs",!1,(e,t)=>{t?(e.on("cursorActivity",Zo),e.on("change",$o)):(e.off("cursorActivity",Zo),e.off("change",$o),$o(e),tr(e))}),e.defineOption("emmet",{}),e.defineExtension("getEmmetCompletions",function(e,t){const n=this;"boolean"==typeof e&&(t=e,e=null),e=e||n.getCursor();const o=Vo(n,e);if(o&&o.completions.length)return n.getOption("markEmmetAbbreviation")&&!To(n,e)&&t&&(Eo(n),Ao(o.model)),{from:o.abbreviation.range.from,to:o.abbreviation.range.to,list:o.completions}}),e.defineExtension("getEmmetAbbreviation",function(e,t){return wo(this,e||this.getCursor(),t)}),e.defineExtension("findEmmetMarker",function(e){return To(this,e||this.getCursor())}),e.defineExtension("getEmmetDocumentModel",function(){const e=this;return e.getOption("markTagPairs")?Jo(e):Qo(e)})}},"1JcR":function(e,t,n){(function(e){e(n("tQq4"))})(function(e){"use strict";function t(e,t){return e.line-t.line||e.ch-t.ch}function n(e,t,n,o){this.line=t,this.ch=n,this.cm=e,this.text=e.getLine(t),this.min=o?Math.max(o.from,e.firstLine()):e.firstLine(),this.max=o?Math.min(o.to-1,e.lastLine()):e.lastLine()}function o(e,t){var n=e.cm.getTokenTypeAt(m(e.line,t));return n&&/\btag\b/.test(n)}function r(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function i(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function s(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t)if(r(e))continue;else return;if(!o(e,t+1)){e.ch=t+1;continue}var n=e.text.lastIndexOf("/",t),i=-1",e.ch-1):-1;if(-1==t)if(i(e))continue;else return;if(!o(e,t+1)){e.ch=t;continue}var n=e.text.lastIndexOf("/",t),r=-1p&&(!t||t==o[2]))return{tag:o[2],from:m(r,l),to:m(e.line,e.ch)}}else n.push(o[2])}}function u(e,t){for(var n=[],o;;){if(o=c(e),!o)return;if("selfClose"==o){l(e);continue}var r=e.line,s=e.ch,d=l(e);if(!d)return;if(d[1])n.push(d[2]);else{for(var p=n.length-1;0<=p;--p)if(n[p]==d[2]){n.length=p;break}if(0>p&&(!t||t==d[2]))return{tag:d[2],from:m(e.line,e.ch),to:m(r,s)}}}}var m=e.Pos,h=/<(\/?)([A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD-:.0-9\u00B7\u0300-\u036F\u203F-\u2040]*)/g;e.registerHelper("fold","xml",function(e,o){for(var r=new n(e,o.line,0),i;;){if(i=d(r),!i||r.line!=o.line)return;var l=s(r);if(!l)return;if(!i[1]&&"selfClose"!=l){var c=m(r.line,r.ch),u=p(r,i[2]);return u&&0")||-1!=i.text.indexOf("<")){var d=s(i),c=d&&m(i.line,i.ch),h=d&&l(i);if(d&&h&&!(0c);u++)i=e.getLine(d++),p=null==p?i:p+"\n"+i;l*=2,t.lastIndex=s.ch;var m=t.exec(p);if(m){var g=p.slice(0,m.index).split("\n"),f=m[0].split("\n"),y=s.line+g.length-1,b=g[g.length-1].length;return{from:h(y,b),to:h(y+f.length-1,1==f.length?b+f[0].length:f[f.length-1].length),match:m}}}}function s(e,t){for(var n=0,o;;){t.lastIndex=n;var r=t.exec(e);if(!r)return o;if(o=r,n=o.index+(o[0].length||1),n==e.length)return o}}function l(e,t,o){t=n(t,"g");for(var r=o.line,i=o.ch,l=e.firstLine(),d;r>=l;r--,i=-1){d=e.getLine(r),-1=d;){for(var p=0,i;p>1,l=o(e.slice(0,s)).length;if(l==n)return s;l>n?i=s:r=s+1}}function p(e,t,n,o){if(!t.length)return null;var r=o?g:f,s=r(t).split(/\r|\n\r?/);search:for(var l=n.line,d=n.ch,p=e.lastLine()+1-s.length;l<=p;l++,d=0){var u=e.getLine(l).slice(d),m=r(u);if(1==s.length){var y=m.indexOf(s[0]);if(-1==y)continue search;var n=c(u,m,y,r)+d;return{from:h(l,c(u,m,y,r)+d),to:h(l,c(u,m,y+s[0].length,r)+d)}}var b=m.length-s[0].length;if(m.slice(b)!=s[0])continue search;for(var x=1;x=p;l--,d=-1){u=e.getLine(l),-1=i.start&&(n.unshift(i.comment),this.leading.splice(r,1),this.trailing.splice(r,1));n.length&&(e.innerComments=n)}},e.prototype.findTrailingComments=function(e){var t=[];if(0=e.end.offset&&t.unshift(o.comment);return this.trailing.length=0,t}var r=this.stack[this.stack.length-1];if(r&&r.node.trailingComments){var i=r.node.trailingComments[0];i&&i.range[0]>=e.end.offset&&(t=r.node.trailingComments,delete r.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t=[],n,o;0=e.start.offset);)n=o.node,this.stack.pop();if(n){for(var r=n.leadingComments?n.leadingComments.length:0,s=r-1,i;0<=s;--s)i=n.leadingComments[s],i.range[1]<=e.start.offset&&(t.unshift(i),n.leadingComments.splice(s,1));return n.leadingComments&&0===n.leadingComments.length&&delete n.leadingComments,t}for(var s=this.leading.length-1,o;0<=s;--s)o=this.leading[s],o.start<=e.start.offset&&(t.unshift(o.comment),this.leading.splice(s,1));return t},e.prototype.visitNode=function(e,t){if(!(e.type===o.Syntax.Program&&0");)t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute(),e.push(t);return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),n=this.parseJSXAttributes(),o=this.matchJSX("/");return o&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new l.JSXOpeningElement(t,o,n))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new l.JSXClosingElement(t))}var n=this.parseJSXElementName(),o=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new l.JSXOpeningElement(n,r,o))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new l.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var t;return this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new l.JSXExpressionContainer(t))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),n=this.nextJSXText();if(n.starte?n(e):n(55296+(e-65536>>10))+n(56320+(1023&e-65536))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||5760<=e&&0<=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||65<=e&&90>=e||97<=e&&122>=e||92===e||128<=e&&o.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||65<=e&&90>=e||97<=e&&122>=e||48<=e&&57>=e||92===e||128<=e&&o.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return 48<=e&&57>=e},isHexDigit:function(e){return 48<=e&&57>=e||65<=e&&70>=e||97<=e&&102>=e},isOctalDigit:function(e){return 48<=e&&55>=e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(6),r=function(){return function(e){this.type=o.JSXSyntax.JSXClosingElement,this.name=e}}();t.JSXClosingElement=r;var i=function(){return function(e,t,n){this.type=o.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=n}}();t.JSXElement=i;var s=function(){return function(){this.type=o.JSXSyntax.JSXEmptyExpression}}();t.JSXEmptyExpression=s;var l=function(){return function(e){this.type=o.JSXSyntax.JSXExpressionContainer,this.expression=e}}();t.JSXExpressionContainer=l;var d=function(){return function(e){this.type=o.JSXSyntax.JSXIdentifier,this.name=e}}();t.JSXIdentifier=d;var c=function(){return function(e,t){this.type=o.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t}}();t.JSXMemberExpression=c;var p=function(){return function(e,t){this.type=o.JSXSyntax.JSXAttribute,this.name=e,this.value=t}}();t.JSXAttribute=p;var u=function(){return function(e,t){this.type=o.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t}}();t.JSXNamespacedName=u;var m=function(){return function(e,t,n){this.type=o.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=n}}();t.JSXOpeningElement=m;var h=function(){return function(e){this.type=o.JSXSyntax.JSXSpreadAttribute,this.argument=e}}();t.JSXSpreadAttribute=h;var g=function(){return function(e,t){this.type=o.JSXSyntax.JSXText,this.value=e,this.raw=t}}();t.JSXText=g},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(2),r=function(){return function(e){this.type=o.Syntax.ArrayExpression,this.elements=e}}();t.ArrayExpression=r;var i=function(){return function(e){this.type=o.Syntax.ArrayPattern,this.elements=e}}();t.ArrayPattern=i;var s=function(){return function(e,t,n){this.type=o.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=n,this.async=!1}}();t.ArrowFunctionExpression=s;var l=function(){return function(e,t,n){this.type=o.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=n}}();t.AssignmentExpression=l;var d=function(){return function(e,t){this.type=o.Syntax.AssignmentPattern,this.left=e,this.right=t}}();t.AssignmentPattern=d;var c=function(){return function(e,t,n){this.type=o.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=n,this.async=!0}}();t.AsyncArrowFunctionExpression=c;var p=function(){return function(e,t,n){this.type=o.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=n,this.generator=!1,this.expression=!1,this.async=!0}}();t.AsyncFunctionDeclaration=p;var u=function(){return function(e,t,n){this.type=o.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=n,this.generator=!1,this.expression=!1,this.async=!0}}();t.AsyncFunctionExpression=u;var m=function(){return function(e){this.type=o.Syntax.AwaitExpression,this.argument=e}}();t.AwaitExpression=m;var h=function(){return function(e,t,n){this.type="||"===e||"&&"===e?o.Syntax.LogicalExpression:o.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=n}}();t.BinaryExpression=h;var g=function(){return function(e){this.type=o.Syntax.BlockStatement,this.body=e}}();t.BlockStatement=g;var f=function(){return function(e){this.type=o.Syntax.BreakStatement,this.label=e}}();t.BreakStatement=f;var y=function(){return function(e,t){this.type=o.Syntax.CallExpression,this.callee=e,this.arguments=t}}();t.CallExpression=y;var b=function(){return function(e,t){this.type=o.Syntax.CatchClause,this.param=e,this.body=t}}();t.CatchClause=b;var x=function(){return function(e){this.type=o.Syntax.ClassBody,this.body=e}}();t.ClassBody=x;var v=function(){return function(e,t,n){this.type=o.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=n}}();t.ClassDeclaration=v;var k=function(){return function(e,t,n){this.type=o.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=n}}();t.ClassExpression=k;var S=function(){return function(e,t){this.type=o.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t}}();t.ComputedMemberExpression=S;var C=function(){return function(e,t,n){this.type=o.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n}}();t.ConditionalExpression=C;var w=function(){return function(e){this.type=o.Syntax.ContinueStatement,this.label=e}}();t.ContinueStatement=w;var T=function(){return function(){this.type=o.Syntax.DebuggerStatement}}();t.DebuggerStatement=T;var E=function(){return function(e,t){this.type=o.Syntax.ExpressionStatement,this.expression=e,this.directive=t}}();t.Directive=E;var A=function(){return function(e,t){this.type=o.Syntax.DoWhileStatement,this.body=e,this.test=t}}();t.DoWhileStatement=A;var I=function(){return function(){this.type=o.Syntax.EmptyStatement}}();t.EmptyStatement=I;var N=function(){return function(e){this.type=o.Syntax.ExportAllDeclaration,this.source=e}}();t.ExportAllDeclaration=N;var L=function(){return function(e){this.type=o.Syntax.ExportDefaultDeclaration,this.declaration=e}}();t.ExportDefaultDeclaration=L;var _=function(){return function(e,t,n){this.type=o.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n}}();t.ExportNamedDeclaration=_;var O=function(){return function(e,t){this.type=o.Syntax.ExportSpecifier,this.exported=t,this.local=e}}();t.ExportSpecifier=O;var M=function(){return function(e){this.type=o.Syntax.ExpressionStatement,this.expression=e}}();t.ExpressionStatement=M;var D=function(){return function(e,t,n){this.type=o.Syntax.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1}}();t.ForInStatement=D;var R=function(){return function(e,t,n){this.type=o.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=n}}();t.ForOfStatement=R;var P=function(){return function(e,t,n,r){this.type=o.Syntax.ForStatement,this.init=e,this.test=t,this.update=n,this.body=r}}();t.ForStatement=P;var F=function(){return function(e,t,n,r){this.type=o.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=n,this.generator=r,this.expression=!1,this.async=!1}}();t.FunctionDeclaration=F;var B=function(){return function(e,t,n,r){this.type=o.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=n,this.generator=r,this.expression=!1,this.async=!1}}();t.FunctionExpression=B;var U=function(){return function(e){this.type=o.Syntax.Identifier,this.name=e}}();t.Identifier=U;var V=function(){return function(e,t,n){this.type=o.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=n}}();t.IfStatement=V;var q=function(){return function(e,t){this.type=o.Syntax.ImportDeclaration,this.specifiers=e,this.source=t}}();t.ImportDeclaration=q;var j=function(){return function(e){this.type=o.Syntax.ImportDefaultSpecifier,this.local=e}}();t.ImportDefaultSpecifier=j;var W=function(){return function(e){this.type=o.Syntax.ImportNamespaceSpecifier,this.local=e}}();t.ImportNamespaceSpecifier=W;var z=function(){return function(e,t){this.type=o.Syntax.ImportSpecifier,this.local=e,this.imported=t}}();t.ImportSpecifier=z;var H=function(){return function(e,t){this.type=o.Syntax.LabeledStatement,this.label=e,this.body=t}}();t.LabeledStatement=H;var K=function(){return function(e,t){this.type=o.Syntax.Literal,this.value=e,this.raw=t}}();t.Literal=K;var G=function(){return function(e,t){this.type=o.Syntax.MetaProperty,this.meta=e,this.property=t}}();t.MetaProperty=G;var X=function(){return function(e,t,n,r,i){this.type=o.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=n,this.kind=r,this.static=i}}();t.MethodDefinition=X;var Q=function(){return function(e){this.type=o.Syntax.Program,this.body=e,this.sourceType="module"}}();t.Module=Q;var J=function(){return function(e,t){this.type=o.Syntax.NewExpression,this.callee=e,this.arguments=t}}();t.NewExpression=J;var $=function(){return function(e){this.type=o.Syntax.ObjectExpression,this.properties=e}}();t.ObjectExpression=$;var Y=function(){return function(e){this.type=o.Syntax.ObjectPattern,this.properties=e}}();t.ObjectPattern=Y;var Z=function(){return function(e,t,n,r,i,s){this.type=o.Syntax.Property,this.key=t,this.computed=n,this.value=r,this.kind=e,this.method=i,this.shorthand=s}}();t.Property=Z;var ee=function(){return function(e,t,n,r){this.type=o.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:n,flags:r}}}();t.RegexLiteral=ee;var te=function(){return function(e){this.type=o.Syntax.RestElement,this.argument=e}}();t.RestElement=te;var ne=function(){return function(e){this.type=o.Syntax.ReturnStatement,this.argument=e}}();t.ReturnStatement=ne;var oe=function(){return function(e){this.type=o.Syntax.Program,this.body=e,this.sourceType="script"}}();t.Script=oe;var re=function(){return function(e){this.type=o.Syntax.SequenceExpression,this.expressions=e}}();t.SequenceExpression=re;var ae=function(){return function(e){this.type=o.Syntax.SpreadElement,this.argument=e}}();t.SpreadElement=ae;var ie=function(){return function(e,t){this.type=o.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t}}();t.StaticMemberExpression=ie;var se=function(){return function(){this.type=o.Syntax.Super}}();t.Super=se;var le=function(){return function(e,t){this.type=o.Syntax.SwitchCase,this.test=e,this.consequent=t}}();t.SwitchCase=le;var de=function(){return function(e,t){this.type=o.Syntax.SwitchStatement,this.discriminant=e,this.cases=t}}();t.SwitchStatement=de;var ce=function(){return function(e,t){this.type=o.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t}}();t.TaggedTemplateExpression=ce;var pe=function(){return function(e,t){this.type=o.Syntax.TemplateElement,this.value=e,this.tail=t}}();t.TemplateElement=pe;var ue=function(){return function(e,t){this.type=o.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t}}();t.TemplateLiteral=ue;var me=function(){return function(){this.type=o.Syntax.ThisExpression}}();t.ThisExpression=me;var he=function(){return function(e){this.type=o.Syntax.ThrowStatement,this.argument=e}}();t.ThrowStatement=he;var ge=function(){return function(e,t,n){this.type=o.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=n}}();t.TryStatement=ge;var fe=function(){return function(e,t){this.type=o.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0}}();t.UnaryExpression=fe;var ye=function(){return function(e,t,n){this.type=o.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=n}}();t.UpdateExpression=ye;var be=function(){return function(e,t){this.type=o.Syntax.VariableDeclaration,this.declarations=e,this.kind=t}}();t.VariableDeclaration=be;var xe=function(){return function(e,t){this.type=o.Syntax.VariableDeclarator,this.id=e,this.init=t}}();t.VariableDeclarator=xe;var ve=function(){return function(e,t){this.type=o.Syntax.WhileStatement,this.test=e,this.body=t}}();t.WhileStatement=ve;var ke=function(){return function(e,t){this.type=o.Syntax.WithStatement,this.object=e,this.body=t}}();t.WithStatement=ke;var Se=function(){return function(e,t){this.type=o.Syntax.YieldExpression,this.argument=e,this.delegate=t}}();t.YieldExpression=Se},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(9),r=n(10),s=n(11),l=n(7),i=n(12),d=n(2),c=n(13),p="ArrowParameterPlaceHolder",u=function(){function e(e,t,n){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=t.source+""),this.delegate=n,this.errorHandler=new r.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new i.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],n=1;n>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,o=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=o,r},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,o=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=o||this.context.firstCoverInitializedNameError,r},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():!this.hasLineTerminator&&(2!==this.lookahead.type&&!this.match("}")&&this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e=this.createNode(),t,n,o;switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),t=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(e,new l.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,s.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),o=this.getTokenRaw(n),t=this.finalize(e,new l.Literal(n.value,o));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),o=this.getTokenRaw(n),t=this.finalize(e,new l.Literal("true"===n.value,o));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),o=this.getTokenRaw(n),t=this.finalize(e,new l.Literal(null,o));break;case 10:t=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,t=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":t=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":t=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,n=this.nextRegexToken(),o=this.getTokenRaw(n),t=this.finalize(e,new l.RegexLiteral(n.regex,o,n.pattern,n.flags));break;default:t=this.throwUnexpectedToken(this.nextToken());}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?t=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?t=this.finalize(e,new l.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?t=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),t=this.finalize(e,new l.ThisExpression)):this.matchKeyword("class")?t=this.parseClassExpression():t=this.throwUnexpectedToken(this.nextToken()));break;default:t=this.throwUnexpectedToken(this.nextToken());}return t},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new l.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var n=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(n)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new l.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,n=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var o=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=n,o},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!1;var n=this.parseFormalParameters(),o=this.parsePropertyMethod(n);return this.context.allowYield=t,this.finalize(e,new l.FunctionExpression(null,n.params,o,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,n=this.context.await;this.context.allowYield=!1,this.context.await=!0;var o=this.parseFormalParameters(),r=this.parsePropertyMethod(o);return this.context.allowYield=t,this.context.await=n,this.finalize(e,new l.AsyncFunctionExpression(null,o.params,r))},e.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),t=this.nextToken(),n;switch(t.type){case 8:case 6:this.context.strict&&t.octal&&this.tolerateUnexpectedToken(t,s.Messages.StrictOctalLiteral);var o=this.getTokenRaw(t);n=this.finalize(e,new l.Literal(t.value,o));break;case 3:case 1:case 5:case 4:n=this.finalize(e,new l.Identifier(t.value));break;case 7:"["===t.value?(n=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):n=this.throwUnexpectedToken(t);break;default:n=this.throwUnexpectedToken(t);}return n},e.prototype.isPropertyKey=function(e,t){return e.type===d.Syntax.Identifier&&e.name===t||e.type===d.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t=this.createNode(),n=this.lookahead,o=null,r=null,i=!1,d=!1,c=!1,p=!1,u;if(3===n.type){var m=n.value;this.nextToken(),i=this.match("["),p=!this.hasLineTerminator&&"async"===m&&!this.match(":")&&!this.match("(")&&!this.match("*"),o=p?this.parseObjectPropertyKey():this.finalize(t,new l.Identifier(m))}else this.match("*")?this.nextToken():(i=this.match("["),o=this.parseObjectPropertyKey());var h=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!p&&"get"===n.value&&h)u="get",i=this.match("["),o=this.parseObjectPropertyKey(),this.context.allowYield=!1,r=this.parseGetterMethod();else if(3===n.type&&!p&&"set"===n.value&&h)u="set",i=this.match("["),o=this.parseObjectPropertyKey(),r=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&h)u="init",i=this.match("["),o=this.parseObjectPropertyKey(),r=this.parseGeneratorMethod(),d=!0;else if(o||this.throwUnexpectedToken(this.lookahead),u="init",this.match(":")&&!p)!i&&this.isPropertyKey(o,"__proto__")&&(e.value&&this.tolerateError(s.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),r=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))r=p?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),d=!0;else if(3===n.type){var m=this.finalize(t,new l.Identifier(n.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),c=!0;var g=this.isolateCoverGrammar(this.parseAssignmentExpression);r=this.finalize(t,new l.AssignmentPattern(m,g))}else c=!0,r=m}else this.throwUnexpectedToken(this.nextToken());return this.finalize(t,new l.Property(u,o,i,r,d,c))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],n={value:!1};!this.match("}");)t.push(this.parseObjectProperty(n)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new l.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){o.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),n=t.value,r=t.cooked;return this.finalize(e,new l.TemplateElement({raw:n,cooked:r},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),n=t.value,o=t.cooked;return this.finalize(e,new l.TemplateElement({raw:n,cooked:o},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],n=[],o=this.parseTemplateHead();for(n.push(o);!o.tail;)t.push(this.parseExpression()),o=this.parseTemplateElement(),n.push(o);return this.finalize(e,new l.TemplateLiteral(n,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case d.Syntax.Identifier:case d.Syntax.MemberExpression:case d.Syntax.RestElement:case d.Syntax.AssignmentPattern:break;case d.Syntax.SpreadElement:e.type=d.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case d.Syntax.ArrayExpression:e.type=d.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:p,params:[],async:!1};else{var t=this.lookahead,n=[];if(this.match("..."))e=this.parseRestElement(n),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:p,params:[e],async:!1};else{var o=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var r=[];for(this.context.isAssignmentTarget=!1,r.push(e);2!==this.lookahead.type&&!!this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var s=0;s")||this.expect("=>"),this.context.isBindingElement=!1;for(var s=0;s")&&(e.type===d.Syntax.Identifier&&"yield"===e.name&&(o=!0,e={type:p,params:[e],async:!1}),!o)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===d.Syntax.SequenceExpression)for(var s=0;s")){for(var c=0;c=o);){for(;2")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=e.async,i=this.reinterpretAsCoverFormalsList(e);if(i){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var c=this.context.strict,u=this.context.allowStrictDirective;this.context.allowStrictDirective=i.simple;var m=this.context.allowYield,h=this.context.await;this.context.allowYield=!0,this.context.await=r;var g=this.startNode(t);this.expect("=>");var f;if(this.match("{")){var y=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=y}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var b=f.type!==d.Syntax.BlockStatement;this.context.strict&&i.firstRestricted&&this.throwUnexpectedToken(i.firstRestricted,i.message),this.context.strict&&i.stricted&&this.tolerateUnexpectedToken(i.stricted,i.message),e=r?this.finalize(g,new l.AsyncArrowFunctionExpression(i.params,f,b)):this.finalize(g,new l.ArrowFunctionExpression(i.params,f,b)),this.context.strict=c,this.context.allowStrictDirective=u,this.context.allowYield=m,this.context.await=h}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(s.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===d.Syntax.Identifier){var x=e;this.scanner.isRestrictedWord(x.name)&&this.tolerateUnexpectedToken(n,s.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(x.name)&&this.tolerateUnexpectedToken(n,s.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),n=this.nextToken();var v=n.value,k=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new l.AssignmentExpression(v,e,k)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){for(var n=[t];2!==this.lookahead.type&&!!this.match(",");)this.nextToken(),n.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new l.SequenceExpression(n))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,s.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,s.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement();}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new l.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var n=this.createNode(),o=this.parsePattern([],e);this.context.strict&&o.type===d.Syntax.Identifier&&this.scanner.isRestrictedWord(o.name)&&this.tolerateError(s.Messages.StrictVarName);var r=null;return"const"===e?!this.matchKeyword("in")&&!this.matchContextualKeyword("of")&&(this.match("=")?(this.nextToken(),r=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(s.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&o.type!==d.Syntax.Identifier||this.match("="))&&(this.expect("="),r=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(n,new l.VariableDeclarator(o,r))},e.prototype.parseBindingList=function(e,t){for(var n=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),n.push(this.parseLexicalBinding(e,t));return n},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),n=this.nextToken().value;o.assert("let"===n||"const"===n,"Lexical declaration must be either let or const");var r=this.parseBindingList(n,e);return this.consumeSemicolon(),this.finalize(t,new l.VariableDeclaration(r,n))},e.prototype.parseBindingRestElement=function(e,t){var n=this.createNode();this.expect("...");var o=this.parsePattern(e,t);return this.finalize(n,new l.RestElement(o))},e.prototype.parseArrayPattern=function(e,t){var n=this.createNode();this.expect("[");for(var o=[];!this.match("]");)if(this.match(","))this.nextToken(),o.push(null);else{if(this.match("...")){o.push(this.parseBindingRestElement(e,t));break}else o.push(this.parsePatternWithDefault(e,t));this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(n,new l.ArrayPattern(o))},e.prototype.parsePropertyPattern=function(e,t){var n=this.createNode(),o=!1,r=!1,i,s;if(3===this.lookahead.type){var d=this.lookahead;i=this.parseVariableIdentifier();var c=this.finalize(n,new l.Identifier(d.value));if(this.match("=")){e.push(d),r=!0,this.nextToken();var p=this.parseAssignmentExpression();s=this.finalize(this.startNode(d),new l.AssignmentPattern(c,p))}else this.match(":")?(this.expect(":"),s=this.parsePatternWithDefault(e,t)):(e.push(d),r=!0,s=c)}else o=this.match("["),i=this.parseObjectPropertyKey(),this.expect(":"),s=this.parsePatternWithDefault(e,t);return this.finalize(n,new l.Property("init",i,o,s,!1,r))},e.prototype.parseObjectPattern=function(e,t){var n=this.createNode(),o=[];for(this.expect("{");!this.match("}");)o.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(n,new l.ObjectPattern(o))},e.prototype.parsePattern=function(e,t){var n;return this.match("[")?n=this.parseArrayPattern(e,t):this.match("{")?n=this.parseObjectPattern(e,t):(this.matchKeyword("let")&&("const"===t||"let"===t)&&this.tolerateUnexpectedToken(this.lookahead,s.Messages.LetInLexicalBinding),e.push(this.lookahead),n=this.parseVariableIdentifier(t)),n},e.prototype.parsePatternWithDefault=function(e,t){var n=this.lookahead,o=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var r=this.context.allowYield;this.context.allowYield=!0;var i=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=r,o=this.finalize(this.startNode(n),new l.AssignmentPattern(o,i))}return o},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),n=this.nextToken();return 4===n.type&&"yield"===n.value?this.context.strict?this.tolerateUnexpectedToken(n,s.Messages.StrictReservedWord):!this.context.allowYield&&this.throwUnexpectedToken(n):3===n.type?(this.context.isModule||this.context.await)&&3===n.type&&"await"===n.value&&this.tolerateUnexpectedToken(n):this.context.strict&&4===n.type&&this.scanner.isStrictModeReservedWord(n.value)?this.tolerateUnexpectedToken(n,s.Messages.StrictReservedWord):(this.context.strict||"let"!==n.value||"var"!==e)&&this.throwUnexpectedToken(n),this.finalize(t,new l.Identifier(n.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),n=this.parsePattern([],"var");this.context.strict&&n.type===d.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(s.Messages.StrictVarName);var o=null;return this.match("=")?(this.nextToken(),o=this.isolateCoverGrammar(this.parseAssignmentExpression)):n.type!==d.Syntax.Identifier&&!e.inFor&&this.expect("="),this.finalize(t,new l.VariableDeclarator(n,o))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},n=[];for(n.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),n.push(this.parseVariableDeclaration(t));return n},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new l.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new l.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(s.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e=this.createNode(),t=null,n;this.expectKeyword("if"),this.expect("(");var o=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),n=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),n=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),t=this.parseIfClause())),this.finalize(e,new l.IfStatement(o,n,t))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var n=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var o=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new l.DoWhileStatement(n,o))},e.prototype.parseWhileStatement=function(){var e=this.createNode(),t;this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var o=this.context.inIteration;this.context.inIteration=!0,t=this.parseStatement(),this.context.inIteration=o}return this.finalize(e,new l.WhileStatement(n,t))},e.prototype.parseForStatement=function(){var e=null,t=null,n=null,o=!0,r=this.createNode(),i,c;if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){e=this.createNode(),this.nextToken();var p=this.context.allowIn;this.context.allowIn=!1;var u=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=p,1===u.length&&this.matchKeyword("in")){var m=u[0];m.init&&(m.id.type===d.Syntax.ArrayPattern||m.id.type===d.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(s.Messages.ForInOfLoopInitializer,"for-in"),e=this.finalize(e,new l.VariableDeclaration(u,"var")),this.nextToken(),i=e,c=this.parseExpression(),e=null}else 1===u.length&&null===u[0].init&&this.matchContextualKeyword("of")?(e=this.finalize(e,new l.VariableDeclaration(u,"var")),this.nextToken(),i=e,c=this.parseAssignmentExpression(),e=null,o=!1):(e=this.finalize(e,new l.VariableDeclaration(u,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){e=this.createNode();var h=this.nextToken().value;if(!this.context.strict&&"in"===this.lookahead.value)e=this.finalize(e,new l.Identifier(h)),this.nextToken(),i=e,c=this.parseExpression(),e=null;else{var p=this.context.allowIn;this.context.allowIn=!1;var u=this.parseBindingList(h,{inFor:!0});this.context.allowIn=p,1===u.length&&null===u[0].init&&this.matchKeyword("in")?(e=this.finalize(e,new l.VariableDeclaration(u,h)),this.nextToken(),i=e,c=this.parseExpression(),e=null):1===u.length&&null===u[0].init&&this.matchContextualKeyword("of")?(e=this.finalize(e,new l.VariableDeclaration(u,h)),this.nextToken(),i=e,c=this.parseAssignmentExpression(),e=null,o=!1):(this.consumeSemicolon(),e=this.finalize(e,new l.VariableDeclaration(u,h)))}}else{var g=this.lookahead,p=this.context.allowIn;if(this.context.allowIn=!1,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=p,this.matchKeyword("in"))this.context.isAssignmentTarget&&e.type!==d.Syntax.AssignmentExpression||this.tolerateError(s.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(e),i=e,c=this.parseExpression(),e=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&e.type!==d.Syntax.AssignmentExpression||this.tolerateError(s.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(e),i=e,c=this.parseAssignmentExpression(),e=null,o=!1;else{if(this.match(",")){for(var f=[e];this.match(",");)this.nextToken(),f.push(this.isolateCoverGrammar(this.parseAssignmentExpression));e=this.finalize(this.startNode(g),new l.SequenceExpression(f))}this.expect(";")}}"undefined"==typeof i&&(!this.match(";")&&(t=this.parseExpression()),this.expect(";"),!this.match(")")&&(n=this.parseExpression()));var y;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),y=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var b=this.context.inIteration;this.context.inIteration=!0,y=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=b}return"undefined"==typeof i?this.finalize(r,new l.ForStatement(e,t,n,y)):o?this.finalize(r,new l.ForInStatement(i,c,y)):this.finalize(r,new l.ForOfStatement(i,c,y))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var n=this.parseVariableIdentifier();t=n;var o="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,o)||this.throwError(s.Messages.UnknownLabel,n.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(s.Messages.IllegalContinue),this.finalize(e,new l.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var n=this.parseVariableIdentifier(),o="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,o)||this.throwError(s.Messages.UnknownLabel,n.name),t=n}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(s.Messages.IllegalBreak),this.finalize(e,new l.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(s.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&2!==this.lookahead.type,n=t?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(e,new l.ReturnStatement(n))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(s.Messages.StrictModeWith);var e=this.createNode(),t;this.expectKeyword("with"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),t=this.parseStatement()),this.finalize(e,new l.WithStatement(n,t))},e.prototype.parseSwitchCase=function(){var e=this.createNode(),t;this.matchKeyword("default")?(this.nextToken(),t=null):(this.expectKeyword("case"),t=this.parseExpression()),this.expect(":");for(var n=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)n.push(this.parseStatementListItem());return this.finalize(e,new l.SwitchCase(t,n))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var n=this.context.inSwitch;this.context.inSwitch=!0;var o=[],r=!1;for(this.expect("{");!this.match("}");){var i=this.parseSwitchCase();null===i.test&&(r&&this.throwError(s.Messages.MultipleDefaultsInSwitch),r=!0),o.push(i)}return this.expect("}"),this.context.inSwitch=n,this.finalize(e,new l.SwitchStatement(t,o))},e.prototype.parseLabelledStatement=function(){var e=this.createNode(),t=this.parseExpression(),n;if(t.type===d.Syntax.Identifier&&this.match(":")){this.nextToken();var o=t,r="$"+o.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)&&this.throwError(s.Messages.Redeclaration,"Label",o.name),this.context.labelSet[r]=!0;var i;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),i=this.parseClassDeclaration();else if(this.matchKeyword("function")){var c=this.lookahead,p=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(c,s.Messages.StrictFunction):p.generator&&this.tolerateUnexpectedToken(c,s.Messages.GeneratorInLegacyContext),i=p}else i=this.parseStatement();delete this.context.labelSet[r],n=new l.LabeledStatement(o,i)}else this.consumeSemicolon(),n=new l.ExpressionStatement(t);return this.finalize(e,n)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(s.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],n=this.parsePattern(t),o={},r=0,i;r=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=d.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=d.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t=[],n,o;for(this.trackComment&&(t=[],n=this.index-e,o={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var r=this.source.charCodeAt(this.index);if(++this.index,l.Character.isLineTerminator(r)){if(this.trackComment){o.end={line:this.lineNumber,column:this.index-this.lineStart-1};var i={multiLine:!1,slice:[n+e,this.index-1],range:[n,this.index-1],loc:o};t.push(i)}return 13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(this.trackComment){o.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!1,slice:[n+e,this.index],range:[n,this.index],loc:o};t.push(i)}return t},e.prototype.skipMultiLineComment=function(){var e=[],t,n;for(this.trackComment&&(e=[],t=this.index-2,n={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(l.Character.isLineTerminator(o))13===o&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===o){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var r={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:n};e.push(r)}return e}++this.index}else++this.index}if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var r={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:n};e.push(r)}return this.tolerateUnexpectedToken(),e},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index,n;!this.eof();)if(n=this.source.charCodeAt(this.index),l.Character.isWhiteSpace(n))++this.index;else if(l.Character.isLineTerminator(n))++this.index,13===n&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===n){if(n=this.source.charCodeAt(this.index+1),47===n){this.index+=2;var o=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(o)),t=!0}else if(42===n){this.index+=2;var o=this.skipMultiLineComment();this.trackComment&&(e=e.concat(o))}else break;}else if(t&&45===n){if(45===this.source.charCodeAt(this.index+1)&&62===this.source.charCodeAt(this.index+2)){this.index+=3;var o=this.skipSingleLineComment(3);this.trackComment&&(e=e.concat(o))}else break;}else if(60!==n)break;else if("!--"===this.source.slice(this.index+1,this.index+4)){this.index+=4;var o=this.skipSingleLineComment(4);this.trackComment&&(e=e.concat(o))}else break;return e},e.prototype.isFutureReservedWord=function(e){return"enum"===e||"export"===e||"import"===e||"super"===e},e.prototype.isStrictModeReservedWord=function(e){return"implements"===e||"interface"===e||"package"===e||"private"===e||"protected"===e||"public"===e||"static"===e||"yield"===e||"let"===e},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1;}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(55296<=t&&56319>=t){var n=this.source.charCodeAt(e+1);if(56320<=n&&57343>=n){var o=t;t=1024*(o-55296)+n-56320+65536}}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,o=0,s=0;st)return this.index=e,this.getComplexIdentifier();if(l.Character.isIdentifierPart(t))++this.index;else break}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index),t=l.Character.fromCodePoint(e);this.index+=t.length;var n;for(92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),(null===n||"\\"===n||!l.Character.isIdentifierStart(n.charCodeAt(0)))&&this.throwUnexpectedToken()),t=n);!this.eof()&&(e=this.codePointAt(this.index),!!l.Character.isIdentifierPart(e));)n=l.Character.fromCodePoint(e),t+=n,this.index+=n.length,92===e&&(t=t.substr(0,t.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),(null===n||"\\"===n||!l.Character.isIdentifierPart(n.charCodeAt(0)))&&this.throwUnexpectedToken()),t+=n);return t},e.prototype.octalToDecimal=function(e){var t="0"!==e,n=i(e);return!this.eof()&&l.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,n=8*n+i(this.source[this.index++]),0<="0123".indexOf(e)&&!this.eof()&&l.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(n=8*n+i(this.source[this.index++]))),{code:n,octal:t}},e.prototype.scanIdentifier=function(){var e=this.index,t=92===this.source.charCodeAt(e)?this.getComplexIdentifier():this.getIdentifier(),n;if(n=1===t.length?3:this.isKeyword(t)?4:"null"===t?5:"true"===t||"false"===t?1:3,3!==n&&e+t.length!==this.index){var o=this.index;this.index=e,this.tolerateUnexpectedToken(d.Messages.InvalidEscapedReservedWord),this.index=o}return{type:n,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];return"("===t||"{"===t?("{"===t&&this.curlyStack.push("{"),++this.index):"."===t?(++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...")):"}"===t?(++this.index,this.curlyStack.pop()):")"===t||";"===t||","===t||"["===t||"]"===t||":"===t||"?"===t||"~"===t?++this.index:(t=this.source.substr(this.index,4),">>>="===t?this.index+=4:(t=t.substr(0,3),"==="===t||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:(t=t.substr(0,2),"&&"===t||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],0<="<>=!+-*%&|^/".indexOf(t)&&++this.index)))),this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&!!l.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),l.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t="",n;!this.eof()&&(n=this.source[this.index],"0"===n||"1"===n);)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),this.eof()||(n=this.source.charCodeAt(this.index),(l.Character.isIdentifierStart(n)||l.Character.isDecimalDigit(n))&&this.throwUnexpectedToken()),{type:6,value:parseInt(t,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var n="",o=!1;for(l.Character.isOctalDigit(e.charCodeAt(0))?(o=!0,n="0"+this.source[this.index++]):++this.index;!this.eof()&&!!l.Character.isOctalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];return o||0!==n.length||this.throwUnexpectedToken(),(l.Character.isIdentifierStart(this.source.charCodeAt(this.index))||l.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(n,8),octal:o,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1,t;e=s?n(s):o}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,o));try{RegExp(r)}catch(t){this.throwUnexpectedToken(d.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];s.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],n=!1,o=!1;!this.eof();)if(e=this.source[this.index++],t+=e,"\\"===e)e=this.source[this.index++],l.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(d.Messages.UnterminatedRegExp),t+=e;else if(l.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(d.Messages.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else if("/"===e){o=!0;break}else"["===e&&(n=!0);return o||this.throwUnexpectedToken(d.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="",t="",n;!this.eof()&&(n=this.source[this.index],!!l.Character.isIdentifierPart(n.charCodeAt(0)));)if(++this.index,"\\"!==n||this.eof())t+=n,e+=n;else if(n=this.source[this.index],"u"===n){++this.index;var o=this.index,r=this.scanHexEscape("u");if(null!==r)for(t+=r,e+="\\u";oe&&l.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:"\"",amp:"&",apos:"'",gt:">",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02C6",tilde:"\u02DC",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203A",oline:"\u203E",frasl:"\u2044",euro:"\u20AC",image:"\u2111",weierp:"\u2118",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666",lang:"\u27E8",rang:"\u27E9"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(10),r=n(12),i=n(13),s=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return 0<=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var n=this.values[this.paren-1];t="if"===n||"while"===n||"for"===n||"with"===n;break;case"}":if(t=!1,"function"===this.values[this.curly-3]){var o=this.values[this.curly-4];t=!!o&&!this.beforeFunctionExpression(o)}else if("function"===this.values[this.curly-4]){var o=this.values[this.curly-5];t=!o||!this.beforeFunctionExpression(o)}break;default:}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),l=function(){function e(e,t){this.errorHandler=new o.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new s}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var t=this.scanner.scanComments();if(this.scanner.trackComment)for(var n=0;n=m&&l()},200)}),t.on(i,"focus",function(){++m})}),t.defineExtension("openNotification",function(o,r){function i(){l||(l=!0,clearTimeout(c),t.rmClass(s.parentNode,"dialog-opened"),s.parentNode.removeChild(s))}n(this,i);var s=e(this,o,r&&r.bottom),l=!1,d=r&&"undefined"!=typeof r.duration?r.duration:5e3,c;return t.on(s,"click",function(n){t.e_preventDefault(n),i()}),d&&(c=setTimeout(i,d)),i})})},"58xA":function(e,t,n){"use strict";function o(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t;}for(var n in t)t.hasOwnProperty(n)&&(e[n]=o(e[n],t[n]));return e}function r(e){return JSON.parse(e)}function i(e,t){if("object"!=typeof e||null===e)return!1;for(var n=0,o=t,r;n 4. Need to update it?");}var r=e+" failed: ";return r+=o+" argument ",r}var d=String.fromCharCode;Object.defineProperty(t,"__esModule",{value:!0});var c=n("vCxL"),p={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},u=function(e,t){if(!e)throw m(t)},m=function(e){return new Error("Firebase Database ("+p.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},h=function(e){for(var t=[],n=0,o=0,r;or?t[n++]=r:2048>r?(t[n++]=192|r>>6,t[n++]=128|63&r):55296==(64512&r)&&o+1>18,t[n++]=128|63&r>>12,t[n++]=128|63&r>>6,t[n++]=128|63&r):(t[n++]=224|r>>12,t[n++]=128|63&r>>6,t[n++]=128|63&r);return t},g=function(e){for(var t=[],n=0,o=0,r;nr)t[o++]=d(r);else if(191r){var i=e[n++];t[o++]=d((31&r)<<6|63&i)}else if(239r){var i=e[n++],s=e[n++],l=e[n++],c=((7&r)<<18|(63&i)<<12|(63&s)<<6|63&l)-65536;t[o++]=d(55296+(c>>10)),t[o++]=d(56320+(1023&c))}else{var i=e[n++],s=e[n++];t[o++]=d((15&r)<<12|(63&i)<<6|63&s)}return t.join("")},f={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray:function(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();for(var n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,o=[],r=0;r>6,u=63&c;d||(u=64,!s&&(p=64)),o.push(n[i>>2],n[(3&i)<<4|l>>4],n[p],n[u])}return o.join("")},encodeString:function(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(h(e),t)},decodeString:function(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):g(this.decodeStringToByteArray(e,t))},decodeStringToByteArray:function(e,t){this.init_();for(var n=t?this.charToByteMapWebSafe_:this.charToByteMap_,o=[],r=0;r>4),64!=c){if(o.push(240&l<<4|c>>2),64!=u){o.push(192&c<<6|u)}}}return o},init_:function(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(var e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}},y=function(e){try{return f.decodeString(e,!0)}catch(t){console.error("base64Decode failed: ",t)}return null},b=function(){function e(){var e=this;this.promise=new Promise(function(t,n){e.resolve=t,e.reject=n})}return e.prototype.wrapCallback=function(e){var t=this;return function(n,o){n?t.reject(n):t.resolve(o),"function"==typeof e&&(t.promise.catch(function(){}),1===e.length?e(n):e(n,o))}},e}(),x=function(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""},v="FirebaseError",k=Error.captureStackTrace,S=function(){return function(e,t){if(this.code=e,this.message=t,k)k(this,C.prototype.create);else try{throw Error.apply(this,arguments)}catch(e){this.name=v,Object.defineProperty(this,"stack",{get:function(){return e.stack}})}}}();S.prototype=Object.create(Error.prototype),S.prototype.constructor=S,S.prototype.name=v;var C=function(){function e(e,t,n){this.service=e,this.serviceName=t,this.errors=n,this.pattern=/\{\$([^}]+)}/g}return e.prototype.create=function(e,t){void 0===t&&(t={});var n=this.errors[e],o=this.service+"/"+e,r;r=void 0===n?"Error":n.replace(this.pattern,function(e,n){var o=t[n];return void 0===o?"<"+n+"?>":o.toString()}),r=this.serviceName+": "+r+" ("+o+").";var i=new S(o,r);for(var s in t)t.hasOwnProperty(s)&&"_"!==s.slice(-1)&&(i[s]=t[s]);return i},e}(),w=function(e){var t={},n={},o={},i="";try{var s=e.split(".");t=r(y(s[0])||""),n=r(y(s[1])||""),i=s[2],o=n.d||{},delete n.d}catch(t){}return{header:t,claims:n,data:o,signature:i}},T=function(e,t){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t(n,e[n])},E=function(e,t){return T(t,function(t,n){e[t]=n}),e},A=function(e,t,n){for(var o in e)if(t.call(n,e[o],o,e))return o},I=function(){return function(){this.blockSize=-1}}(),N=function(e){function t(){var t=e.call(this)||this;t.chain_=[],t.buf_=[],t.W_=[],t.pad_=[],t.inbuf_=0,t.total_=0,t.blockSize=64,t.pad_[0]=128;for(var n=1;ns;s++)r[s]=n.charCodeAt(o)<<24|n.charCodeAt(o+1)<<16|n.charCodeAt(o+2)<<8|n.charCodeAt(o+3),o+=4;else for(var s=0;16>s;s++)r[s]=n[o]<<24|n[o+1]<<16|n[o+2]<<8|n[o+3],o+=4;for(var s=16,i;80>s;s++)i=r[s-3]^r[s-8]^r[s-14]^r[s-16],r[s]=4294967295&(i<<1|i>>>31);for(var t=this.chain_[0],l=this.chain_[1],p=this.chain_[2],c=this.chain_[3],d=this.chain_[4],s=0,e,u;80>s;s++){40>s?20>s?(e=c^l&(p^c),u=1518500249):(e=l^p^c,u=1859775393):60>s?(e=l&p|c&(l|p),u=2400959708):(e=l^p^c,u=3395469782);var i=4294967295&(t<<5|t>>>27)+e+d+u+r[s];d=c,c=p,p=4294967295&(l<<30|l>>>2),l=t,t=i}this.chain_[0]=4294967295&this.chain_[0]+t,this.chain_[1]=4294967295&this.chain_[1]+l,this.chain_[2]=4294967295&this.chain_[2]+p,this.chain_[3]=4294967295&this.chain_[3]+c,this.chain_[4]=4294967295&this.chain_[4]+d},t.prototype.update=function(e,t){if(null!=e){void 0===t&&(t=e.length);for(var o=t-this.blockSize,r=0,n=this.buf_,i=this.inbuf_;rthis.inbuf_?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(var o=this.blockSize-1;56<=o;o--)this.buf_[o]=255&t,t/=256;this.compress_(this.buf_);for(var r=0,o=0;5>o;o++)for(var n=24;0<=n;n-=8)e[r]=255&this.chain_[o]>>n,++r;return e},t}(I),L=function(){function e(e,t){var n=this;this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(function(){e(n)}).catch(function(t){n.error(t)})}return e.prototype.next=function(e){this.forEachObserver(function(t){t.next(e)})},e.prototype.error=function(e){this.forEachObserver(function(t){t.error(e)}),this.close(e)},e.prototype.complete=function(){this.forEachObserver(function(e){e.complete()}),this.close()},e.prototype.subscribe=function(e,t,n){var o=this,r;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");r=i(e,["next","error","complete"])?e:{next:e,error:t,complete:n},void 0===r.next&&(r.next=s),void 0===r.error&&(r.error=s),void 0===r.complete&&(r.complete=s);var l=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(function(){try{o.finalError?r.error(o.finalError):r.complete()}catch(t){}}),this.observers.push(r),l},e.prototype.unsubscribeOne=function(e){void 0===this.observers||void 0===this.observers[e]||(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))},e.prototype.forEachObserver=function(e){if(!this.finalized)for(var t=0;t=o&&n<=r},t.clone=function(e){return E({},e)},t.contains=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.every=function(e,t){for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&!t(n,e[n]))return!1;return!0},t.extend=E,t.findKey=A,t.findValue=function(e,t,n){var o=A(e,t,n);return o&&e[o]},t.forEach=T,t.getAnyKey=function(e){for(var t in e)return t},t.getCount=function(e){var t=0;for(var n in e)t++;return t},t.getValues=function(e){var t=[],n=0;for(var o in e)t[n++]=e[o];return t},t.isEmpty=function(e){for(var t in e)return!1;return!0},t.isNonNullObject=function(e){return"object"==typeof e&&null!==e},t.map=function(e,t,n){var o={};for(var r in e)o[r]=t.call(n,e[r],r,e);return o},t.safeGet=function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]},t.querystring=function(e){var t=[];return T(e,function(e,n){Array.isArray(n)?n.forEach(function(n){t.push(encodeURIComponent(e)+"="+encodeURIComponent(n))}):t.push(encodeURIComponent(e)+"="+encodeURIComponent(n))}),t.length?"&"+t.join("&"):""},t.querystringDecode=function(e){var t={},n=e.replace(/^\?/,"").split("&");return n.forEach(function(e){if(e){var n=e.split("=");t[n[0]]=n[1]}}),t},t.Sha1=N,t.async=function(e,t){return function(){for(var n=[],o=0;on&&(r=0===n?"none":"no more than "+n),r){var i=e+" failed: Was called with "+o+(1===o?" argument.":" arguments.")+" Expects "+r+".";throw new Error(i)}},t.validateCallback=function(e,t,n,o){if((!o||n)&&"function"!=typeof n)throw new Error(l(e,t,o)+"must be a valid function.")},t.validateContextObject=function(e,t,n,o){if((!o||n)&&("object"!=typeof n||null===n))throw new Error(l(e,t,o)+"must be a valid context object.")},t.validateNamespace=function(e,t,n,o){if((!o||n)&&"string"!=typeof n)throw new Error(l(e,t,o)+"must be a valid firebase namespace.")},t.stringLength=function(e){for(var t=0,n=0,o;no?t++:2048>o?t+=2:55296<=o&&56319>=o?(t+=4,n++):t+=3;return t},t.stringToByteArray=function(e){for(var t=[],n=0,o=0,r;o=r){var i=r-55296;o++,u(or?t[n++]=r:2048>r?(t[n++]=192|r>>6,t[n++]=128|63&r):65536>r?(t[n++]=224|r>>12,t[n++]=128|63&r>>6,t[n++]=128|63&r):(t[n++]=240|r>>18,t[n++]=128|63&r>>12,t[n++]=128|63&r>>6,t[n++]=128|63&r)}return t}},"5gBI":function(e,t,n){(function(e){e(n("tQq4"))})(function(e){"use strict";function t(t,n){var o=t.getLine(n),r=o.search(/\S/);return-1==r||/\bcomment\b/.test(t.getTokenTypeAt(e.Pos(n,r+1)))?-1:e.countColumn(o,null,t.getOption("tabSize"))}e.registerHelper("fold","indent",function(n,o){var r=t(n,o.line);if(!(0>r)){for(var s=null,l=o.line+1,i=n.lastLine(),d;l<=i;++l)if(d=t(n,l),-1==d);else if(d>r)s=l;else break;if(s)return{from:e.Pos(o.line,n.getLine(o.line).length),to:e.Pos(s,n.getLine(s).length)}}})})},"6r0S":function(e,t,n){(function(e){e(n("tQq4"))})(function(e){function t(t,n){for(var o=0,r=t.length;oi.ch&&(d.end=i.ch,d.string=d.string.slice(0,i.ch-d.start)):d={start:i.ch,end:i.ch,string:"",state:d.state,type:"."==d.string?"property":null};for(var p=d;"property"==p.type;){if(p=o(t,l(i.line,p.start)),"."!=p.string)return;if(p=o(t,l(i.line,p.start)),!u)var u=[];u.push(p)}return{list:s(d,u,n,r),from:l(i.line,d.start),to:l(i.line,d.end)}}}}function r(e,t){var n=e.getTokenAt(t);return t.ch==n.start+1&&"."==n.string.charAt(0)?(n.end=n.start,n.string=".",n.type="property"):/^\.[\w$_]*$/.test(n.string)&&(n.type="property",n.start++,n.string=n.string.replace(/\./,"")),n}function i(e,t){if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)for(var n in e)t(n);else for(var r=e;r;r=Object.getPrototypeOf(r))Object.getOwnPropertyNames(r).forEach(t)}function s(e,o,r,s){function l(e){0!=e.lastIndexOf(h,0)||n(m,e)||m.push(e)}function u(e){"string"==typeof e?t(d,l):e instanceof Array?t(c,l):e instanceof Function&&t(p,l),i(e,l)}var m=[],h=e.string,g=s&&s.globalScope||window;if(o&&o.length){var f=o.pop(),y;for(f.type&&0===f.type.indexOf("variable")?(s&&s.additionalContext&&(y=s.additionalContext[f.string]),(!s||!1!==s.useGlobalScope)&&(y=y||g[f.string])):"string"==f.type?y="":"atom"==f.type?y=1:"function"==f.type&&(null!=g.jQuery&&("$"==f.string||"jQuery"==f.string)&&"function"==typeof g.jQuery?y=g.jQuery():null!=g._&&"_"==f.string&&"function"==typeof g._&&(y=g._()));null!=y&&o.length;)y=y[o.pop().string];null!=y&&u(y)}else{for(var b=e.state.localVars;b;b=b.next)l(b.name);for(var b=e.state.globalVars;b;b=b.next)l(b.name);s&&!1===s.useGlobalScope||u(g),t(r,l)}return m}var l=e.Pos;e.registerHelper("hint","javascript",function(e,t){return o(e,u,function(t,e){return t.getTokenAt(e)},t)}),e.registerHelper("hint","coffeescript",function(e,t){return o(e,m,r,t)});var d=["charAt","charCodeAt","indexOf","lastIndexOf","substring","substr","slice","trim","trimLeft","trimRight","toUpperCase","toLowerCase","split","concat","match","replace","search"],c=["length","concat","join","splice","push","pop","shift","unshift","slice","reverse","sort","indexOf","lastIndexOf","every","some","filter","forEach","map","reduce","reduceRight",""],p=["prototype","apply","call","bind"],u=["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","false","finally","for","function","if","in","import","instanceof","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","yield"],m=["and","break","catch","class","continue","delete","do","else","extends","false","finally","for","if","in","instanceof","isnt","new","no","not","null","of","off","on","or","return","switch","then","throw","true","try","typeof","until","void","while","with","yes"]})},"7vHL":function(e,t,n){"use strict";var o=n("eA7g"),r=n.n(o)},AIXc:function(e,t,n){(function(e){e(n("tQq4"),n("HeB0"),n("qqFR"),n("ggoL"))})(function(e){"use strict";function t(e,t,n){var o=e.current(),r=o.search(t);return-1","i")}function s(e,t){for(var n in e)for(var o=t[n]||(t[n]=[]),r=e[n],s=r.length-1;0<=s;s--)o.unshift(r[s])}function i(e,t){for(var n=0,r;n\s\/]/.test(o.current())&&(m=s.htmlState.tagName&&s.htmlState.tagName.toLowerCase())&&p.hasOwnProperty(m))s.inTag=m+" ";else if(s.inTag&&u&&/>$/.test(o.current())){var h=/^([\S]+) (.*)/.exec(s.inTag);s.inTag=null;var g=">"==o.current()&&i(p[h[1]],h[2]),f=e.getMode(n,g),y=r(h[1],!0),b=r(h[1],!1);s.token=function(e,n){return e.match(y,!1)?(n.token=d,n.localState=n.localMode=null,null):t(e,b,n.localMode.token(e,n.localState))},s.localMode=f,s.localState=e.startState(f,c.indent(s.htmlState,""))}else s.inTag&&(s.inTag+=o.current(),o.eol()&&(s.inTag+=" "));return l}var c=e.getMode(n,{name:"xml",htmlMode:!0,multilineTagIndentFactor:o.multilineTagIndentFactor,multilineTagIndentPastTag:o.multilineTagIndentPastTag}),p={},u=o&&o.tags,m=o&&o.scriptTypes;if(s(l,p),u&&s(u,p),m)for(var h=m.length-1;0<=h;h--)p.script.unshift(["type",m[h].matches,m[h].mode]);return{startState:function(){var t=e.startState(c);return{token:d,inTag:null,localMode:null,localState:null,htmlState:t}},copyState:function(t){var n;return t.localState&&(n=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:n,htmlState:e.copyState(c,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,n,o){return!t.localMode||/^\s*<\//.test(n)?c.indent(t.htmlState,n):t.localMode.indent?t.localMode.indent(t.localState,n,o):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||c}}}},"xml","javascript","css"),e.defineMIME("text/html","htmlmixed")})},AhD2:function(){var e=Math.round;(function(){function t(e){var t=getComputedStyle(e).color;if(t)try{return t.match(/(\d+), (\d+), (\d+)/).slice(1)}catch(t){return[255,255,255]}else return[255,255,255]}function n(e,t,n){var o={x:e,y:t+10,alpha:1,color:n};return 1===L?(o.size=s(2,4),o.vx=T.x[0]+Math.random()*(T.x[1]-T.x[0]),o.vy=T.y[0]+Math.random()*(T.y[1]-T.y[0])):2===L&&(o.size=s(2,8),o.drag=0.92,o.vx=s(-3,3),o.vy=s(-3,3),o.wander=0.15,o.theta=s(0,360)*m/180),o}function o(t){t.vy+=S,t.x+=t.vx,t.y+=t.vy,t.alpha*=C,M.fillStyle="rgba("+t.color[0]+","+t.color[1]+","+t.color[2]+","+t.alpha+")",M.fillRect(e(t.x-1),e(t.y-1),t.size,t.size)}function r(t){t.x+=t.vx,t.y+=t.vy,t.vx*=t.drag,t.vy*=t.drag,t.theta+=s(-0.5,0.5),t.vx+=0.1*Math.sin(t.theta),t.vy+=0.1*Math.cos(t.theta),t.size*=0.96,M.fillStyle="rgba("+t.color[0]+","+t.color[1]+","+t.color[2]+","+t.alpha+")",M.beginPath(),M.arc(e(t.x-1),e(t.y-1),t.size,0,2*m),M.fill()}function i(){for(var e=x.length,t;e--;)(t=x[e],!(!t||0.01>t.alpha||0.5>=t.size))&&(1===L?o(t):2===L&&r(t))}function s(e,t){return t||(t=e,e=0),e+~~(Math.random()*(t-e+1))}function l(e,t){var n=!1;return function(){n||(e.apply(this,arguments),n=!0,setTimeout(function(){n=!1},t))}}function d(){h&&(M.clearRect(0,0,E,w),D=new Date().getTime(),!b&&(b=D),R=(D-b)/1e3,b=D,0i.ch&&(b=b.slice(0,b.length-u.end+i.ch));var x=b.toLowerCase();if(!b||"string"==u.type&&(u.end!=i.ch||!/[\"\']/.test(u.string.charAt(u.string.length-1))||1==u.string.length)||"tag"==u.type&&"closeTag"==h.type||u.string.indexOf("/")==u.string.length-1||f&&-1"+(v?"\n\n":"")+"",newPos:v?e.Pos(i.line+1,0):e.Pos(i.line,i.ch+1)}}for(var k="object"==typeof c&&c.dontIndentOnAutoClose,p=n.length-1,S;0<=p;p--){S=o[p],t.replaceRange(S.text,n[p].head,n[p].anchor,"+insert");var C=t.listSelections().slice(0);C[p]={head:S.newPos,anchor:S.newPos},t.setSelections(C),!k&&S.indent&&(t.indentLine(S.newPos.line,null,!0),t.indentLine(S.newPos.line+1,null,!0))}}function n(t,n){for(var o=t.listSelections(),r=[],l=n?"/":""!=t.getLine(i.line).charAt(u.end)&&(g+=">"),r[p]=g}if(t.replaceSelections(r),o=t.listSelections(),!c)for(var p=0;p'"]=function(e){return t(e)}),n.addKeyMap(s)}});var l=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],d=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];e.commands.closeTag=function(e){return n(e)}})},BtxX:function(e){(function(t){function n(){}function o(e,t){return function(){e.apply(t,arguments)}}function r(e){if(!(this instanceof r))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],p(e,this)}function s(e,t){for(;3===e._state;)e=e._value;return 0===e._state?void e._deferreds.push(t):void(e._handled=!0,r._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null===n)return void(1===e._state?i:l)(t.promise,e._value);var o;try{o=n(e._value)}catch(n){return void l(t.promise,n)}i(t.promise,o)}))}function i(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof r)return t._state=3,t._value=e,void d(t);if("function"==typeof n)return void p(o(n,e),t)}t._state=1,t._value=e,d(t)}catch(n){l(t,n)}}function l(e,t){e._state=2,e._value=t,d(e)}function d(e){2===e._state&&0===e._deferreds.length&&r._immediateFn(function(){e._handled||r._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;te.firstLine();)r=t.Pos(r.line-1,0),p=l(!1);if(p&&!p.cleared&&"unfold"!==s){var u=n(e,i);t.on(u,"mousedown",function(n){m.clear(),t.e_preventDefault(n)});var m=e.markText(p.from,p.to,{replacedWith:u,clearOnEnter:o(e,i,"clearOnEnter"),__isFold:!0});m.on("clear",function(n,o){t.signal(e,"unfold",e,n,o)}),t.signal(e,"fold",e,p.from,p.to)}}function n(e,t){var n=o(e,t,"widget");if("string"==typeof n){var r=document.createTextNode(n);n=document.createElement("span"),n.appendChild(r),n.className="CodeMirror-foldmarker"}else n&&(n=n.cloneNode(!0));return n}function o(e,t,n){if(t&&void 0!==t[n])return t[n];var o=e.options.foldOptions;return o&&void 0!==o[n]?o[n]:r[n]}t.newFoldFunction=function(t,n){return function(o,r){e(o,r,{rangeFinder:t,widget:n})}},t.defineExtension("foldCode",function(t,n,o){e(this,t,n,o)}),t.defineExtension("isFolded",function(e){for(var t=this.findMarksAt(e),n=0;n")):null:e.match("--")?n(d("comment","-->")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(c(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=d("meta","?>"),"meta"):(A=e.eat("/")?"closeTag":"openTag",t.tokenize=s,"tag bracket");if("&"==o){var r;return r=e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"),r?"atom":"error"}return e.eatWhile(/[^&<]/),null}function s(e,t){var n=e.next();if(">"==n||"/"==n&&e.eat(">"))return t.tokenize=i,A=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return A="equals",null;if("<"==n){t.tokenize=i,t.state=h,t.tagName=t.tagStart=null;var o=t.tokenize(e,t);return o?o+" tag error":"tag error"}return /[\'\"]/.test(n)?(t.tokenize=l(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function l(e){var t=function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=s;break}return"string"};return t.isInAttribute=!0,t}function d(e,t){return function(n,o){for(;!n.eol();){if(n.match(t)){o.tokenize=i;break}n.next()}return e}}function c(e){return function(t,n){for(var o;null!=(o=t.next());){if("<"==o)return n.tokenize=c(e+1),n.tokenize(t,n);if(">"==o)if(1==e){n.tokenize=i;break}else return n.tokenize=c(e-1),n.tokenize(t,n)}return"meta"}}function p(e,t,n){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=n,(w.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function u(e){e.context&&(e.context=e.context.prev)}function m(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!w.contextGrabbers.hasOwnProperty(n)||!w.contextGrabbers[n].hasOwnProperty(t))return;u(e)}}function h(e,t,n){return"openTag"==e?(n.tagStart=t.column(),g):"closeTag"==e?f:h}function g(e,t,n){return"word"==e?(n.tagName=t.current(),I="tag",x):w.allowMissingTagName&&"endTag"==e?(I="tag bracket",x(e,t,n)):(I="error",g)}function f(e,t,n){if("word"==e){var o=t.current();return n.context&&n.context.tagName!=o&&w.implicitlyClosed.hasOwnProperty(n.context.tagName)&&u(n),n.context&&n.context.tagName==o||!1===w.matchClosing?(I="tag",y):(I="tag error",b)}return w.allowMissingTagName&&"endTag"==e?(I="tag bracket",y(e,t,n)):(I="error",b)}function y(e,t,n){return"endTag"==e?(u(n),h):(I="error",y)}function b(e,t,n){return I="error",y(e,t,n)}function x(e,t,n){if("word"==e)return I="attribute",v;if("endTag"==e||"selfcloseTag"==e){var o=n.tagName,r=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||w.autoSelfClosers.hasOwnProperty(o)?m(n,o):(m(n,o),n.context=new p(n,o,r==n.indented)),h}return I="error",x}function v(e,t,n){return"equals"==e?k:(w.allowMissing||(I="error"),x(e,t,n))}function k(e,t,n){return"string"==e?S:"word"==e&&w.allowUnquoted?(I="string",x):(I="error",x(e,t,n))}function S(e,t,n){return"string"==e?S:x(e,t,n)}var C=o.indentUnit,w={},T=r.htmlMode?t:n;for(var E in T)w[E]=T[E];for(var E in r)w[E]=r[E];var A,I;return i.isInText=!0,{startState:function(e){var t={tokenize:i,state:h,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;A=null;var n=t.tokenize(e,t);return(n||A)&&"comment"!=n&&(I=null,t.state=t.state(A||n,e,t),I&&(n="error"==I?n+" error":I)),n},indent:function(t,n,o){var r=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+C;if(r&&r.noIndent)return e.Pass;if(t.tokenize!=s&&t.tokenize!=i)return o?o.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1===w.multilineTagIndentPastTag?t.tagStart+C*(w.multilineTagIndentFactor||1):t.tagStart+t.tagName.length+2;if(w.alignCDATA&&/$/,blockCommentStart:"",configuration:w.htmlMode?"html":"xml",helperType:w.htmlMode?"html":"xml",skipAttribute:function(e){e.state==k&&(e.state=x)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})},IIoC:function(e,t,n){var o=Math.round,r=Math.floor,i=Math.max;(function(t){(function(){function s(e){return"string"==typeof e}function l(e,t){e=e.split("."),t=t||Do;for(var n=0;nn?null:s(t)?t.charAt(n):t[n]}function _e(e){if(!v(e))for(var t=e.length-1;0<=t;t--)delete e[t];e.length=0}function et(){return Array.prototype.concat.apply([],arguments)}function tt(e){var t=e.length;if(0t?1:0}function rt(e){return-1!=Vo.indexOf(e)}function y(e,t,n){for(var o in e)t.call(n,e[o],o,e)}function at(e){var t=[],n=0,o;for(o in e)t[n++]=e[o];return t}function it(e){var t=[],n=0,o;for(o in e)t[n++]=o;return t}function st(e){var t={},n;for(n in e)t[n]=e[n];return t}function lt(t){for(var n=1,e,o;no.keyCode||void 0!=o.returnValue)){a:{var i=!1;if(0==o.keyCode)try{o.keyCode=-1;break a}catch(e){i=!0}(i||void 0==o.returnValue)&&(o.returnValue=!0)}for(o=[],i=n.a;i;i=i.parentNode)o.push(i);for(t=t.type,i=o.length-1;0<=i;i--){n.a=o[i];var e=Et(o[i],t,!0,n);r=r&&e}for(i=0;it.b&&(t.b++,e.next=t.a,t.a=e)}fr=!1}function Kt(e,t){_t.call(this),this.b=e||1,this.a=t||Do,this.c=_(this.qb,this),this.g=Ro()}function Gt(e){e.ea=!1,e.O&&(e.a.clearTimeout(e.O),e.O=null)}function Xt(e,t,n){if(m(e))n&&(e=_(e,n));else if(e&&"function"==typeof e.handleEvent)e=_(e.handleEvent,e);else throw Error("Invalid listener argument");return 2147483647<+t?-1:Do.setTimeout(e,t||0)}function Qt(e,t,n){$.call(this),this.f=null==n?e:_(e,n),this.c=t,this.b=_(this.kb,this),this.a=[]}function Jt(e){e.Y=Xt(e.b,e.c),e.f.apply(null,e.a)}function $t(e){$.call(this),this.b=e,this.a={}}function Yt(t,n,o,r){v(o)||(o&&(vr[0]=o.toString()),o=vr);for(var i=0,e;ii.length)){var e=i[1];if(v(e)&&!(1>e.length)){var s=e[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(var l=1;ln)&&(3!=n||Ko||t.a.V())){t.B||4!=n||7==o||(8==o||0>=r?mn(3):mn(2)),Fn(t);var i=t.a.W();t.C=i,(o=t.a.V())||cn(t.b,function(){return"No response text for uri "+t.g+" status "+i}),t.f=200==i,ln(t.b,t.o,t.g,t.c,t.T,n,i),t.f?((r=_n(t))&&(dn(t.b,t.c,r,"Initial handshake response via X-HTTP-Initial-Response"),t.v=!0,Vn(t,r)),t.K?(On(t,n,o),Ko&&t.f&&3==n&&Mn(t)):(dn(t.b,t.c,o,null),Vn(t,o)),4==n&&Un(t),t.f&&!t.B&&(4==n?t.i.ta(t):(t.f=!1,Rn(t)))):(400==i&&0t.length)?Pr:(t=t.substr(o,n),e.G=o+n,t)}function Rn(e){e.U=Ro()+e.R,Pn(e,e.R)}function Pn(e,t){if(null!=e.s)throw Error("WatchDog timer not null");e.s=yn(_(e.lb,e),t)}function Fn(e){e.s&&(Do.clearTimeout(e.s),e.s=null)}function Bn(e){e.i.La()||e.B||e.i.ta(e)}function Un(e){Fn(e);var t=e.I;t&&"function"==typeof t.$&&t.$(),e.I=null,Gt(e.S),Zt(e.L),e.a&&(t=e.a,e.a=null,t.abort(),t.$())}function Vn(e,t){try{e.i.Oa(e,t),mn(4)}catch(t){H(e.b,t,"Error in httprequest callback")}}function qn(e){if(e.A&&"function"==typeof e.A)return e.A();if(s(e))return e.split("");if(p(e)){for(var t=[],n=e.length,o=0;o2*e.c&&Hn(e),!0)}function Hn(t){if(t.c!=t.a.length){for(var n=0,o=0,r;nt)throw Error("Bad port number "+t);e.i=t}else e.i=null}function Jn(e,t,n){t instanceof ro?(e.c=t,po(e.c,e.h)):(n||(t=no(t,qr)),e.c=new ro(t,e.h))}function $n(e,t,n){e.c.set(t,n)}function R(e,t,n){v(n)||(n=[n+""]),so(e.c,t,n)}function Yn(e){return $n(e,"zx",r(2147483648*Math.random()).toString(36)+Math.abs(r(2147483648*Math.random())^Ro()).toString(36)),e}function Zn(e){return e instanceof Gn?Q(e):new Gn(e,void 0)}function eo(t,n,o,r){var i=new Gn(null,void 0);return t&&M(i,t),n&&Xn(i,n),o&&Qn(i,o),r&&(i.a=r),i}function to(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function no(e,t,n){return s(e)?(e=encodeURI(e).replace(t,oo),n&&(e=e.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e):null}function oo(e){return e=e.charCodeAt(0),"%"+(15&e>>4).toString(16)+(15&e).toString(16)}function ro(e,t){this.b=this.a=null,this.c=e||null,this.f=!!t}function ao(e){e.a||(e.a=new Wn,e.b=0,e.c&&P(e.c,function(t,n){e.add(decodeURIComponent(t.replace(/\+/g," ")),n)}))}function S(e,t){ao(e),t=co(e,t),Kn(e.a.b,t)&&(e.c=null,e.b-=e.a.get(t).length,zn(e.a,t))}function io(e,t){return ao(e),t=co(e,t),Kn(e.a.b,t)}function so(e,t,n){S(e,t),0=e.f}function de(e,t){return e.b?e=e.b==t:e.a?(t=xo(t),e=Kn(e.a.a.b,t)):e=!1,e}function ee(e,t){e.a?e.a.add(t):e.b=t}function ce(e,t){if(e.b&&e.b==t)e.b=null;else{var n;(n=e.a)&&(n=xo(t),n=Kn(e.a.a.b,n)),n&&zn(e.a.a,xo(t))}}function fe(e){if(null!=e.b)return e.c.concat(e.b.u);if(null!=e.a&&0!=e.a.a.c){var t=e.c;return Bo(e.a.A(),function(e){t=t.concat(e.u)}),t}return tt(e.c)}function ge(e,t){e.c=e.c.concat(t)}function he(){}function ie(){this.a=new he}function je(e,t,n){var o=n||"";try{jn(e,function(n,r){var i=n;I(n)&&(i=Dt(n)),t.push(o+r+"="+encodeURIComponent(i))})}catch(n){throw t.push(o+"type="+encodeURIComponent("_badmap")),n}}function ke(e,t){var n=new E;cn(n,"TestLoadImage: loading "+e);var o=new Image;o.onload=f(le,n,o,"TestLoadImage: loaded",!0,t),o.onerror=f(le,n,o,"TestLoadImage: error",!1,t),o.onabort=f(le,n,o,"TestLoadImage: abort",!1,t),o.ontimeout=f(le,n,o,"TestLoadImage: timeout",!1,t),Do.setTimeout(function(){o.ontimeout&&o.ontimeout()},1E4),o.src=e}function le(t,n,o,r,i){try{cn(t,o),n.onload=null,n.onerror=null,n.onabort=null,n.ontimeout=null,i(r)}catch(e){H(t,e)}}function me(e){_t.call(this),this.headers=new Wn,this.s=e||null,this.c=!1,this.D=this.a=null,this.K=this.B="",this.j=0,this.g="",this.h=this.I=this.u=this.G=!1,this.l=0,this.C=null,this.L=ae,this.v=this.o=!1}function T(e){return zo&&ut(9)&&"number"==typeof e.timeout&&void 0!==e.ontimeout}function se(e){return"content-type"==e.toLowerCase()}function Co(e,t){e.c=!1,e.a&&(e.h=!0,e.a.abort(),e.h=!1),e.g=t,e.j=5,qe(e),ve(e)}function qe(e){e.G||(e.G=!0,e.dispatchEvent("complete"),e.dispatchEvent("error"))}function te(t){if(t.c&&"undefined"!=typeof Mo)if(t.D[1]&&4==re(t)&&2==t.W())an(t.b,wo(t,"Local request error detected and ignored"));else if(t.u&&4==re(t))Xt(t.Na,0,t);else if(t.dispatchEvent("readystatechange"),4==re(t)){an(t.b,wo(t,"Request complete")),t.c=!1;try{var n=t.W();a:switch(n){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var o=!0;break a;default:o=!1;}var r;if(!(r=o)){var i;if(i=0===n){var e=(t.B+"").match(Fr)[1]||null;if(!e&&Do.self&&Do.self.location){var s=Do.self.location.protocol;e=s.substr(0,s.length-1)}i=!ne.test(e?e.toLowerCase():"")}r=i}r?(t.dispatchEvent("complete"),t.dispatchEvent("success")):(t.j=6,t.g=t.Ha()+" ["+t.W()+"]",qe(t))}finally{ve(t)}}}function ve(t,e){if(t.a){ue(t);var o=t.a,r=t.D[0]?n:null;t.a=null,t.D=null,e||t.dispatchEvent("ready");try{o.onreadystatechange=r}catch(n){(t=t.b)&&t.log(Sr,"Problem encountered resetting onreadystatechange: "+n.message,void 0)}}}function ue(e){e.a&&e.v&&(e.a.ontimeout=null),e.C&&(Do.clearTimeout(e.C),e.C=null)}function re(e){return e.a?e.a.readyState:0}function N(e,t){return e.a?e.a.getResponseHeader(t):null}function wo(e,t){return t+" ["+e.K+" "+e.B+" "+e.W()+"]"}function U(e){var t="";return y(e,function(e,n){t+=n,t+=":",t+=e,t+="\r\n"}),t}function we(t,n,o){a:{for(r in o){var r=!1;break a}r=!0}if(r)return t;if(o=U(o),s(t)){if(n=encodeURIComponent(n+""),o=null==o?"":"="+encodeURIComponent(o+""),n+=o){if(o=t.indexOf("#"),0>o&&(o=t.length),r=t.indexOf("?"),0>r||r>o){r=o;var i=""}else i=t.substring(r+1,o);t=[t.substr(0,r),i,t.substr(o)],o=t[1],t[1]=n?o?o+"&"+n:n:o,t=t[0]+(t[1]?"?"+t[1]:"")+t[2]}return t}return $n(t,n,o),t}function xe(e){this.ya=0,this.g=[],this.a=new E,this.I=new yo,this.X=this.ua=this.D=this.ja=this.b=this.K=this.j=this.U=this.h=this.L=this.i=null,this.Za=this.R=0,this.Xa=!!l("internalChannelParams.failFast",e),this.ka=this.C=this.s=this.l=this.m=this.f=null,this.u=this.xa=this.N=-1,this.T=this.B=this.v=0,this.Wa=l("internalChannelParams.baseRetryDelayMs",e)||5E3,this.$a=l("internalChannelParams.retryDelaySeedMs",e)||1E4,this.Ya=l("internalChannelParams.forwardChannelMaxRetries",e)||2,this.wa=l("internalChannelParams.forwardChannelRequestTimeoutMs",e)||2E4,this.Ta=e&&e.Kb||void 0,this.G=void 0,this.S=e&&e.supportsCrossDomainXhr||!1,this.J="",this.c=new ko(e&&e.concurrentRequestLimit),this.la=new ie,this.o=e&&void 0!==e.backgroundChannelTest?e.backgroundChannelTest:!0,(this.va=e&&e.fastHandshake||!1)&&!this.o&&(rn(this.a.a,"Force backgroundChannelTest when fastHandshake is enabled."),this.o=!0),e&&e.Fa&&this.a.Fa()}function ye(e){if(cn(e.a,"disconnect()"),ze(e),3==e.F){var t=e.R++,n=Q(e.D);$n(n,"SID",e.J),$n(n,"RID",t),$n(n,"TYPE","terminate"),Je(e,n),t=new En(e,e.a,t,void 0),t.J=2,t.h=Yn(Q(n)),n=!1,Do.navigator&&Do.navigator.sendBeacon&&(n=Do.navigator.sendBeacon(t.h.toString(),"")),!n&&Do.Image&&(new Image().src=t.h,n=!0),n||(t.a=t.i.ca(null),t.a.fa(t.h)),t.D=Ro(),Rn(t)}V(e)}function ze(e){e.C&&(e.C.abort(),e.C=null),e.b&&(e.b.cancel(),e.b=null),e.l&&(Do.clearTimeout(e.l),e.l=null),Eo(e),e.c.cancel(),e.m&&(Do.clearTimeout(e.m),e.m=null)}function Ae(e,t){1E3==e.g.length&&F(e.a,function(){return"Already have 1000 queued maps upon queueing "+Dt(t)}),e.g.push(new vo(e.Za++,t)),3==e.F&&Ee(e)}function Ee(e){be(e.c)||e.m||(e.m=yn(_(e.Qa,e),0),e.v=0)}function Fe(e,t){var n=e.c;return(n.b?1:n.a?n.a.a.c:0)>=e.c.f-(e.m?1:0)?(F(e.a,"Unexpected retry request is scheduled."),!1):e.m?(cn(e.a,"Use the retry request that is already scheduled."),e.g=t.u.concat(e.g),!0):1==e.F||2==e.F||e.v>=(e.Xa?0:e.Ya)?!1:(cn(e.a,"Going to retry POST"),e.m=yn(_(e.Qa,e,t),De(e,e.v)),e.v++,!0)}function Ge(e,t){var n=t?t.c:e.R++;var r=Q(e.D);$n(r,"SID",e.J),$n(r,"RID",n),$n(r,"AID",e.N),Je(e,r),e.h&&e.i&&we(r,e.h,e.i),n=new En(e,e.a,n,e.v+1),null===e.h&&(n.j=e.i),t&&(e.g=t.u.concat(e.g)),t=Be(e,n),n.setTimeout(o(.5*e.wa)+o(.5*e.wa*Math.random())),ee(e.c,n),An(n,r,t)}function Je(e,t){e.f&&jn({},function(e,n){$n(t,n,e)})}function Be(t,n){var o=Math.min(t.g.length,1E3),r=t.f?_(t.f.ab,t.f,t):null;a:for(var s=t.g,e=-1,l;;){l=["count="+o],-1==e?0p)e=i(0,s[c].a-100),d=!1;else try{je(u,l,"req"+p+"_")}catch(e){r&&r(u)}}if(d){r=l.join("&");break a}}return t=t.g.splice(0,o),n.u=t,r}function Ie(e){if(!e.b&&!e.l){e.T=1;var t=e.Pa;xr||zt(),fr||(xr(),fr=!0),yr.add(t,e),e.B=0}}function Ke(e){return e.b||e.l?(F(e.a,"Request already in progress"),!1):!(3<=e.B)&&(cn(e.a,"Going to retry GET"),e.T++,e.l=yn(_(e.Pa,e),De(e,e.B)),e.B++,!0)}function Le(e,t,n){cn(e.a,"Test Connection Finished");var o=t.l;o&&So(e.c,o),e.ka=n,e.u=t.f,cn(e.a,"connectChannel_()"),e.D=Ce(e,e.ja),Ee(e)}function To(e,t){cn(e.a,"Test Connection Failed"),e.u=t.f,He(e,2)}function Eo(e){null!=e.s&&(Do.clearTimeout(e.s),e.s=null)}function De(e,t){var n=e.Wa+r(Math.random()*e.$a);return e.qa()||(cn(e.a,"Inactive channel"),n*=2),n*t}function He(e,t){if(pn(e.a,"Error code "+t),2==t){var n=null;e.f&&(n=null);var o=_(e.pb,e);n||(n=new Gn("//www.google.com/images/cleardot.gif"),Do.location&&"http"==Do.location.protocol||M(n,"https"),Yn(n)),ke(n.toString(),o)}else gn(2);cn(e.a,"HttpChannel: error - "+t),e.F=0,e.f&&e.f.Ba(t),V(e),ze(e)}function V(e){if(e.F=0,e.u=-1,e.f){var t=fe(e.c);(0!=t.length||0!=e.g.length)&&(cn(e.a,function(){return"Number of undelivered maps, pending: "+t.length+", outgoing: "+e.g.length}),e.c.c.length=0,tt(e.g),e.g.length=0),e.f.Aa()}}function Ce(e,t){return t=Ao(e,null,t),cn(e.a,"GetForwardChannelUri: "+t),t}function Me(e,t,n){return t=Ao(e,e.ia()?t:null,n),cn(e.a,"GetBackChannelUri: "+t),t}function Ao(t,n,o){var r=Zn(o);if(""!=r.b)n&&Xn(r,n+"."+r.b),Qn(r,r.i);else{var i=Do.location,e;e=n?n+"."+i.hostname:i.hostname,r=eo(i.protocol,e,i.port,o)}return t.U&&y(t.U,function(e,t){$n(r,t,e)}),n=t.j,o=t.K,n&&o&&$n(r,n,o),$n(r,"VER",t.na),Je(t,r),r}function Ne(){}function Oe(){for(var t=arguments[0],n=1,o;nthis.c)throw Error(Hr);this.a=new Re,this.b=new bo,this.g=null,this.aa()}function Ye(e){if("function"==typeof e.$)e.$();else for(var t in e)e[t]=null}function Io(e){return We(e.a)+e.b.a.c}function $e(e,t){this.a=e,this.b=t}function No(e){if(this.a=[],e)a:{if(e instanceof No){var t=e.M();if(e=e.A(),0>=this.a.length){for(var n=this.a,o=0;o>1,e[o].a>n.a);)e[t]=e[o],t=o;e[t]=n}function _o(){No.call(this)}function Oo(e,t){this.f=new _o,Xe.call(this,e,t)}function Y(e,t,n,o){this.l=e,this.j=!!o,Oo.call(this,t,n)}var Mo=Mo||{},Do=this,k="closure_uid_"+(1E9*Math.random()>>>0),q=0,Ro=Date.now||function(){return+new Date},t;b(u,Error),u.prototype.name="CustomError",b(j,u),j.prototype.name="AssertionError";var g=0,Po={};$.prototype.i=!1,$.prototype.$=function(){},$.prototype.w=function(){if(this.m)for(;this.m.length;)this.m.shift()()};var Fo=Array.prototype.indexOf?function(e,t){return Array.prototype.indexOf.call(e,t,void 0)}:function(e,t){if(s(e))return s(t)&&1==t.length?e.indexOf(t,0):-1;for(var n=0;nparseFloat(Jo)){Qo=Yo+"";break a}}Qo=Jo}var Zo={},er=Do.document,tr;tr=er&&zo?pt()||("CSS1Compat"==er.compatMode?parseInt(Qo,10):5):void 0;var nr=Object.freeze||function(e){return e},or=!zo||9<=+tr,rr=zo&&!ut("9"),ar=function(){if(!Do.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});return Do.addEventListener("test",n,t),Do.removeEventListener("test",n,t),e}();mt.prototype.b=function(){this.Ra=!1},b(A,mt);var ir=nr({2:"touch",3:"pen",4:"mouse"});A.prototype.b=function(){A.H.b.call(this);var e=this.c;if(e.preventDefault)e.preventDefault();else if(e.returnValue=!1,rr)try{(e.ctrlKey||112<=e.keyCode&&123>=e.keyCode)&&(e.keyCode=-1)}catch(e){}};var sr="closure_listenable_"+(0|1E6*Math.random()),lr=0;ft.prototype.add=function(t,n,o,r,i){var e=t.toString();t=this.a[e],t||(t=this.a[e]=[],this.b++);var s=bt(t,n,r,i);return-1>>0);b(_t,$),_t.prototype[sr]=!0,t=_t.prototype,t.addEventListener=function(e,t,n,o){xt(this,e,t,n,o)},t.removeEventListener=function(e,t,n,o){Ct(this,e,t,n,o)},t.dispatchEvent=function(t){var n=this.J,o;if(n)for(o=[];n;n=n.J)o.push(n);n=this.N;var r=t.type||t;if(s(t))t=new mt(t,n);else if(t instanceof mt)t.target=t.target||n;else{var i=t;t=new mt(r,n),lt(t,i)}if(i=!0,o)for(var e=o.length-1,l;0<=e;e--)l=t.a=o[e],i=B(l,r,!0,t)&&i;if(l=t.a=n,i=B(l,r,!0,t)&&i,i=B(l,r,!1,t)&&i,o)for(e=0;e=C(this).value)for(m(t)&&(t=t()),e=new en(e,t+"",this.f),n&&(e.a=n),n=this;n;)n=n.a};var Ar={},Ir=null;E.prototype.Fa=function(){this.b=!1};var Nr=new _t;b(un,mt),b(hn,mt),b(K,mt);var Lr={NO_ERROR:0,rb:1,yb:2,xb:3,ub:4,wb:5,zb:6,Ua:7,TIMEOUT:8,Cb:9},_r={tb:"complete",Gb:"success",Va:"error",Ua:"abort",Eb:"ready",Fb:"readystatechange",TIMEOUT:"timeout",Ab:"incrementaldata",Db:"progress",vb:"downloadprogress",Hb:"uploadprogress"};bn.prototype.a=null;var Or={OPEN:"a",sb:"b",Va:"c",Bb:"d"};b(kn,mt),b(Sn,mt);var Mr;b(Cn,bn),Mr=new Cn;var Dr=45E3,Rr={},Pr={};t=En.prototype,t.setTimeout=function(e){this.R=e},t.nb=function(e){e=e.target;var t=this.I;t&&3==re(e)?(cn(this.b,"Throttling readystatechange."),t.cb()):this.Sa(e)},t.Sa=function(e){try{e==this.a?Ln(this):rn(this.b.a,"Called back with an unexpected xmlhttp")}catch(e){if(cn(this.b,"Failed call to OnXmlHttpReadyStateChanged_"),this.a&&this.a.V()){var t=this;H(this.b,e,function(){return"ResponseText: "+t.a.V()})}else H(this.b,e,"No response text")}finally{}},t.mb=function(){if(this.a){var e=re(this.a),t=this.a.V();this.Gn&&this.ka&&0==this.B&&!this.s&&(this.s=yn(_(this.ib,this),6E3)))}else if((t.v||this.b==t)&&Eo(this),!nt(n))for(n=o=this.la.a.parse(n),o=0;oe-this.g)){for(var t;0this.c&&0=i)e=void 0;else{if(1==i)_e(r);else{r[0]=r.pop(),r=0,o=o.a,i=o.length;for(var s=o[r];r>1;){var l=2*r+1,d=2*r+2;if(l=ds.a)break;o[r]=o[l],r=l}o[r]=s}e=e.b}e.apply(this,[n])}},t.ma=function(e){Oo.H.ma.call(this,e),this.ra()},t.aa=function(){Oo.H.aa.call(this),this.ra()},t.w=function(){Oo.H.w.call(this),Do.clearTimeout(void 0),_e(this.f.a),this.f=null},b(Y,Oo),Y.prototype.pa=function(){var e=new me,t=this.l;return t&&t.forEach(function(t,n){e.headers.set(n,t)}),this.j&&(e.o=!0),e},Y.prototype.sa=function(e){return!e.i&&!e.a},Pe.prototype.createWebChannel=Pe.prototype.a,Qe.prototype.send=Qe.prototype.gb,Qe.prototype.open=Qe.prototype.fb,Qe.prototype.close=Qe.prototype.close,Lr.NO_ERROR=0,Lr.TIMEOUT=8,Lr.HTTP_ERROR=6,_r.COMPLETE="complete",vn.EventType=Or,Or.OPEN="a",Or.CLOSE="b",Or.ERROR="c",Or.MESSAGE="d",_t.prototype.listen=_t.prototype.Ia,Y.prototype.getObject=Y.prototype.da,Y.prototype.releaseObject=Y.prototype.ob,me.prototype.listenOnce=me.prototype.Ja,me.prototype.getLastError=me.prototype.hb,me.prototype.getLastErrorCode=me.prototype.Ga,me.prototype.getStatus=me.prototype.W,me.prototype.getStatusText=me.prototype.Ha,me.prototype.getResponseJson=me.prototype.eb,me.prototype.getResponseText=me.prototype.V,me.prototype.getResponseText=me.prototype.V,me.prototype.send=me.prototype.fa,e.exports={createWebChannelTransport:pe,ErrorCode:Lr,EventType:_r,WebChannel:vn,XhrIoPool:Y}}).call("undefined"==typeof t?"undefined"==typeof self?"undefined"==typeof window?{}:window:self:t)}).call(t,n("h6ac"))},IYZm:function(e,t,n){(function(e){e(n("tQq4"),n("LiPu"))})(function(e){"use strict";function t(e){for(var t in u)u.hasOwnProperty(t)&&(e.attrs[t]=u[t])}var n=["ab","aa","af","ak","sq","am","ar","an","hy","as","av","ae","ay","az","bm","ba","eu","be","bn","bh","bi","bs","br","bg","my","ca","ch","ce","ny","zh","cv","kw","co","cr","hr","cs","da","dv","nl","dz","en","eo","et","ee","fo","fj","fi","fr","ff","gl","ka","de","el","gn","gu","ht","ha","he","hz","hi","ho","hu","ia","id","ie","ga","ig","ik","io","is","it","iu","ja","jv","kl","kn","kr","ks","kk","km","ki","rw","ky","kv","kg","ko","ku","kj","la","lb","lg","li","ln","lo","lt","lu","lv","gv","mk","mg","ms","ml","mt","mi","mr","mh","mn","na","nv","nb","nd","ne","ng","nn","no","ii","nr","oc","oj","cu","om","or","os","pa","pi","fa","pl","ps","pt","qu","rm","rn","ro","ru","sa","sc","sd","se","sm","sg","sr","gd","sn","si","sk","sl","so","st","es","su","sw","ss","sv","ta","te","tg","th","ti","bo","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","cy","wo","fy","xh","yi","yo","za","zu"],o=["_blank","_self","_top","_parent"],r=["ascii","utf-8","utf-16","latin1","latin1"],i=["get","post","put","delete"],l=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],d=["all","screen","print","embossed","braille","handheld","print","projection","screen","tty","tv","speech","3d-glasses","resolution [>][<][=] [X]","device-aspect-ratio: X/Y","orientation:portrait","orientation:landscape","device-height: [X]","device-width: [X]"],c={attrs:{}},p={a:{attrs:{href:null,ping:null,type:null,media:d,target:o,hreflang:n}},abbr:c,acronym:c,address:c,applet:c,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:d,hreflang:n,type:null,shape:["default","rect","circle","poly"]}},article:c,aside:c,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["","autoplay"],loop:["","loop"],controls:["","controls"]}},b:c,base:{attrs:{href:null,target:o}},basefont:c,bdi:c,bdo:c,big:c,blockquote:{attrs:{cite:null}},body:c,br:c,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["","autofocus"],disabled:["","autofocus"],formenctype:l,formmethod:i,formnovalidate:["","novalidate"],formtarget:o,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:c,center:c,cite:c,code:c,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["","disabled"],checked:["","checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["","disabled"],multiple:["","multiple"]}},datalist:{attrs:{data:null}},dd:c,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["","open"]}},dfn:c,dir:c,div:c,dl:c,dt:c,em:c,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["","disabled"],form:null,name:null}},figcaption:c,figure:c,font:c,footer:c,form:{attrs:{action:null,name:null,"accept-charset":r,autocomplete:["on","off"],enctype:l,method:i,novalidate:["","novalidate"],target:o}},frame:c,frameset:c,h1:c,h2:c,h3:c,h4:c,h5:c,h6:c,head:{attrs:{},children:["title","base","link","style","meta","script","noscript","command"]},header:c,hgroup:c,hr:c,html:{attrs:{manifest:null},children:["head","body"]},i:c,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["","seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["","autofocus"],checked:["","checked"],disabled:["","disabled"],formenctype:l,formmethod:i,formnovalidate:["","novalidate"],formtarget:o,multiple:["","multiple"],readonly:["","readonly"],required:["","required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:c,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["","autofocus"],disabled:["","disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:c,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:n,media:d,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:c,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:r,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:c,noframes:c,noscript:c,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["","typemustmatch"]}},ol:{attrs:{reversed:["","reversed"],start:null,type:["1","a","A","i","I"]}},optgroup:{attrs:{disabled:["","disabled"],label:null}},option:{attrs:{disabled:["","disabled"],label:null,selected:["","selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:c,param:{attrs:{name:null,value:null}},pre:c,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:c,rt:c,ruby:c,s:c,samp:c,script:{attrs:{type:["text/javascript"],src:null,async:["","async"],defer:["","defer"],charset:r}},section:c,select:{attrs:{form:null,name:null,size:null,autofocus:["","autofocus"],disabled:["","disabled"],multiple:["","multiple"]}},small:c,source:{attrs:{src:null,type:null,media:null}},span:c,strike:c,strong:c,style:{attrs:{type:["text/css"],media:d,scoped:null}},sub:c,summary:c,sup:c,table:c,tbody:c,td:{attrs:{colspan:null,rowspan:null,headers:null}},textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["","autofocus"],disabled:["","disabled"],readonly:["","readonly"],required:["","required"],wrap:["soft","hard"]}},tfoot:c,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:c,time:{attrs:{datetime:null}},title:c,tr:c,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:n}},tt:c,u:c,ul:c,var:c,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["","autoplay"],mediagroup:["movie"],muted:["","muted"],controls:["","controls"]}},wbr:c},u={accesskey:["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9"],class:null,contenteditable:["true","false"],contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["en","es"],spellcheck:["true","false"],style:null,tabindex:["1","2","3","4","5","6","7","8","9"],title:null,translate:["yes","no"],onclick:null,rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"]};for(var m in t(c),p)p.hasOwnProperty(m)&&p[m]!=c&&t(p[m]);e.htmlSchema=p,e.registerHelper("hint","html",function(t,n){var o={schemaInfo:p};if(n)for(var r in n)o[r]=n[r];return e.hint.xml(t,o)})})},"Jo/m":function(e,t,n){(function(e){e(n("tQq4"),n("29F7"),n("4e7A"))})(function(e){"use strict";function t(e,t){return"string"==typeof e?e=new RegExp(e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t?"gi":"g"):!e.global&&(e=new RegExp(e.source,e.ignoreCase?"gi":"g")),{token:function(t){e.lastIndex=t.pos;var n=e.exec(t.string);return n&&n.index==t.pos?(t.pos+=n[0].length||1,"searching"):void(n?t.pos=n.index:t.skipToEnd())}}}function n(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function o(e){return e.state.search||(e.state.search=new n)}function r(e){return"string"==typeof e&&e==e.toLowerCase()}function i(e,t,n){return e.getSearchCursor(t,n,{caseFold:r(t),multiline:!0})}function s(e,t,n,o,r){e.openDialog(t,o,{value:n,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){g(e)},onKeyDown:r})}function l(e,t,n,o,r){e.openDialog?e.openDialog(t,r,{value:o,selectValueOnOpen:!0}):r(prompt(n,o))}function d(e,t,n,o){e.openConfirm?e.openConfirm(t,o):confirm(n)&&o[0]()}function c(e){return e.replace(/\\(.)/g,function(e,t){return"n"==t?"\n":"r"==t?"\r":t})}function p(e){var t=e.match(/^\/(.*)\/([a-z]*)$/);if(t)try{e=new RegExp(t[1],-1==t[2].indexOf("i")?"":"i")}catch(t){}else e=c(e);return("string"==typeof e?""==e:e.test(""))&&(e=/x^/),e}function u(e,n,o){n.queryText=o,n.query=p(o),e.removeOverlay(n.overlay,r(n.query)),n.overlay=t(n.query,r(n.query)),e.addOverlay(n.overlay),e.showMatchesOnScrollbar&&(n.annotate&&(n.annotate.clear(),n.annotate=null),n.annotate=e.showMatchesOnScrollbar(n.query,r(n.query)))}function m(t,n,r,i){var d=o(t);if(d.query)return h(t,n);var c=t.getSelection()||d.lastQuery;if(c instanceof RegExp&&"x^"==c.source&&(c=null),r&&t.openDialog){var p=null,m=function(n,o){e.e_stop(o),n&&(n!=d.queryText&&(u(t,d,n),d.posFrom=d.posTo=t.getCursor()),p&&(p.style.opacity=1),h(t,o.shiftKey,function(e,n){var o;3>n.line&&document.querySelector&&(o=t.display.wrapper.querySelector(".CodeMirror-dialog"))&&o.getBoundingClientRect().bottom-4>t.cursorCoords(n,"window").top&&((p=o).style.opacity=.4)}))};s(t,b,c,m,function(n,r){var i=e.keyName(n),s=t.getOption("extraKeys"),l=s&&s[i]||e.keyMap[t.getOption("keyMap")][i];"findNext"==l||"findPrev"==l||"findPersistentNext"==l||"findPersistentPrev"==l?(e.e_stop(n),u(t,o(t),r),t.execCommand(l)):("find"==l||"findPersistent"==l)&&(e.e_stop(n),m(r,n))}),i&&c&&(u(t,d,c),h(t,n))}else l(t,b,"Search for:",c,function(e){e&&!d.query&&t.operation(function(){u(t,d,e),d.posFrom=d.posTo=t.getCursor(),h(t,n)})})}function h(t,n,r){t.operation(function(){var s=o(t),l=i(t,s.query,n?s.posFrom:s.posTo);!l.find(n)&&(l=i(t,s.query,n?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0)),!l.find(n))||(t.setSelection(l.from(),l.to()),t.scrollIntoView({from:l.from(),to:l.to()},20),s.posFrom=l.from(),s.posTo=l.to(),r&&r(l.from(),l.to()))})}function g(e){e.operation(function(){var t=o(e);t.lastQuery=t.query,t.query&&(t.query=t.queryText=null,e.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))})}function f(e,t,n){e.operation(function(){for(var o=i(e,t);o.findNext();)if("string"!=typeof t){var r=e.getRange(o.from(),o.to()).match(t);o.replace(n.replace(/\$(\d)/g,function(e,t){return r[t]}))}else o.replace(n)})}function y(e,t){if(!e.getOption("readOnly")){var n=e.getSelection()||o(e).lastQuery,r=""+(t?"Replace all:":"Replace:")+"";l(e,r+x,r,n,function(n){n&&(n=p(n),l(e,v,"Replace with:","",function(o){if(o=c(o),t)f(e,n,o);else{g(e);var r=i(e,n,e.getCursor("from")),s=function(){var t=r.from(),c;!(c=r.findNext())&&(r=i(e,n),!(c=r.findNext())||t&&r.from().line==t.line&&r.from().ch==t.ch)||(e.setSelection(r.from(),r.to()),e.scrollIntoView({from:r.from(),to:r.to()}),d(e,k,"Replace?",[function(){l(c)},s,function(){f(e,n,o)}]))},l=function(e){r.replace("string"==typeof n?o:o.replace(/\$(\d)/g,function(t,n){return e[n]})),s()};s()}}))})}}var b="Search: (Use /re/ syntax for regexp search)",x=" (Use /re/ syntax for regexp search)",v="With: ",k="Replace? ";e.commands.find=function(e){g(e),m(e)},e.commands.findPersistent=function(e){g(e),m(e,!1,!0)},e.commands.findPersistentNext=function(e){m(e,!1,!0,!0)},e.commands.findPersistentPrev=function(e){m(e,!0,!0,!0)},e.commands.findNext=m,e.commands.findPrev=function(e){m(e,!0)},e.commands.clearSearch=g,e.commands.replace=y,e.commands.replaceAll=function(e){y(e,!0)}})},KM04:function(O){!function(){"use strict";function M(){}function F(e,s){var n=U,d,o,c,i;for(i=arguments.length;2c.ch&&(p.end=c.ch,p.string=p.string.slice(0,c.ch-p.start));var u=e.innerMode(r.getMode(),p.state);if("xml"==u.mode.name){var m=[],h=!1,g=/\btag\b/.test(p.type)&&!/>$/.test(p.string),f=g&&/^\w/.test(p.string),y,b;if(f){var x=r.getLine(c.line).slice(o(0,p.start-2),p.start),v=/<\/$/.test(x)?"close":/<$/.test(x)?"open":null;v&&(b=p.start-("close"==v?2:1))}else g&&"<"==p.string?v="open":g&&"")}else{var S=l[u.state.tagName],T=S&&S.attrs,E=l["!attrs"];if(!T&&!E)return;if(!T)T=E;else if(E){var A={};for(var I in E)E.hasOwnProperty(I)&&(A[I]=E[I]);for(var I in T)T.hasOwnProperty(I)&&(A[I]=T[I]);T=A}if("string"==p.type||"="==p.string){var x=r.getRange(t(c.line,o(0,c.ch-60)),t(c.line,"string"==p.type?p.start:p.end)),N=x.match(/([^\s\u00a0=<>\"\']+)=$/),L;if(!N||!T.hasOwnProperty(N[1])||!(L=T[N[1]]))return;if("function"==typeof L&&(L=L.call(this,r)),"string"==p.type){y=p.string;var _=0;/['"]/.test(p.string.charAt(0))&&(d=p.string.charAt(0),y=p.string.slice(1),_++);var n=p.string.length;/['"]/.test(p.string.charAt(n-1))&&(d=p.string.charAt(n-1),y=p.string.substr(_,n-2)),h=!0}for(var w=0;wthis.status,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new r(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var b={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(t){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(b.arrayBuffer)var x=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],v=function(e){return e&&DataView.prototype.isPrototypeOf(e)},k=ArrayBuffer.isView||function(e){return e&&-1e.b&&(e.b++,t.next=e.a,e.a=t)}function rt(){this.b=this.a=null}function at(){var e=vc,t=null;return e.a&&(t=e.a,e.a=e.a.next,e.a||(e.b=null),t.next=null),t}function it(){this.next=this.b=this.a=null}function st(e,t){var n=e.length,o=s(e)?e.split(""):e;for(--n;0<=n;--n)n in o&&t.call(void 0,o[n],n,e)}function lt(t){a:{for(var n=Lr,o=t.length,r=s(t)?t.split(""):t,i=0;in?null:s(t)?t.charAt(n):t[n]}function dt(e,t){return 0<=wa(e,t)}function ct(e,t){t=wa(e,t);var n;return(n=0<=t)&&Array.prototype.splice.call(e,t,1),n}function pt(t,n){var o=0;st(t,function(r,i){n.call(void 0,r,i,t)&&1==Array.prototype.splice.call(t,i,1).length&&o++})}function ut(){return Array.prototype.concat.apply([],arguments)}function mt(e){var t=e.length;if(0")&&(e=e.replace(Pa,">")),-1!=e.indexOf("\"")&&(e=e.replace(Qa,""")),-1!=e.indexOf("'")&&(e=e.replace(Ra,"'")),-1!=e.indexOf("\0")&&(e=e.replace(Sa,"�")),e):e}function ft(e,t){return-1!=e.indexOf(t)}function w(e,t){return et?1:0}function yt(e){return ft(Na,e)}function x(e,t){for(var n in e)t.call(void 0,e[n],n,e)}function bt(e){for(var t in e)return!1;return!0}function xt(e){var t={},n;for(n in e)t[n]=e[n];return t}function vt(t){for(var n=1,e,o;nr.keyCode||void 0!=r.returnValue)){a:{var i=!1;if(0==r.keyCode)try{r.keyCode=-1;break a}catch(e){i=!0}(i||void 0==r.returnValue)&&(r.returnValue=!0)}for(r=[],i=n.b;i;i=i.parentNode)r.push(i);for(t=t.type,i=r.length-1;0<=i;i--){n.b=r[i];var e=ln(r[i],t,!0,n);o=o&&e}for(i=0;it)throw Error("Bad port number "+t);e.i=t}else e.i=null}function In(e,t,n){t instanceof Rn?(e.a=t,jn(e.a,e.f)):(n||(t=Mn(t,Qc)),e.a=new Rn(t,e.f))}function Nn(e,t,n){e.a.set(t,n)}function F(e,t){return e.a.get(t)}function Ln(e){return e instanceof Tn?new Tn(e):new Tn(e,void 0)}function _n(e,t){var n=new Tn(null,void 0);return En(n,"https"),e&&(n.b=e),t&&(n.g=t),n}function On(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function Mn(e,t,n){return s(e)?(e=encodeURI(e).replace(t,Dn),n&&(e=e.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e):null}function Dn(e){return e=e.charCodeAt(0),"%"+(15&e>>4).toString(16)+(15&e).toString(16)}function Rn(e,t){this.b=this.a=null,this.c=e||null,this.f=!!t}function Pn(e){e.a||(e.a=new kn,e.b=0,e.c&&wn(e.c,function(t,n){e.add(decodeURIComponent(t.replace(/\+/g," ")),n)}))}function Fn(t){var n=xn(t);if("undefined"==typeof n)throw Error("Keys are undefined");var o=new Rn(null,void 0);t=bn(t);for(var r=0;r2*e.c&&Sn(e)))}function Un(e,t){return Pn(e),t=qn(e,t),Cn(e.a.b,t)}function Vn(e,t,n){Bn(e,t),0"),e=e.join("")}return e=n.createElement(e),o&&(s(o)?e.className=o:_(o)?e.className=o.join(" "):ro(e,o)),2e?!1:!_c||!zc||9",t=no(t),l.document.write(to(t)),l.document.close())):(l=r.open($n(n),o,l))&&t.noopener&&(l.opener=null),l)try{l.focus()}catch(e){}return l}function de(e){return new Et(function(t){function n(){yn(2E3).then(function(){return!e||e.closed?void t():n()})}return n()})}function fe(){var e=null;return new Et(function(t){"complete"==yc.document.readyState?t():(e=function(){t()},rn(window,"load",e))}).s(function(t){throw an(window,"load",e),t})}function he(){return ie(void 0)?fe().then(function(){return new Et(function(e,t){var n=yc.document,o=setTimeout(function(){t(Error("Cordova framework is not ready."))},1E3);n.addEventListener("deviceready",function(){clearTimeout(o),e()},!1)})}):A(Error("Cordova must run in an Android or iOS file scheme."))}function ie(e){return e=e||re(),"file:"===ve()&&e.toLowerCase().match(/iphone|ipad|ipod|android/)}function je(){var e=yc.window;try{return e&&e!=e.top}catch(e){return!1}}function le(){return"object"!=typeof yc.window&&"function"==typeof yc.importScripts}function me(){return uc.INTERNAL.hasOwnProperty("reactNative")?"ReactNative":uc.INTERNAL.hasOwnProperty("node")?"Node":le()?"Worker":"Browser"}function ne(){var e=me();return"ReactNative"===e||"Node"===e}function oe(){for(var e=50,t=[];0t)throw Error("Short delay should be less than long delay!");this.a=e,this.c=t,e=re(),t=me(),this.b=bo(e)||"ReactNative"===t}function Ce(){var e=yc.document;return e&&"undefined"!=typeof e.visibilityState?"visible"==e.visibilityState:!0}function De(){var e=yc.document,t=null;return Ce()||!e?It():new Et(function(n){t=function(){Ce()&&(e.removeEventListener("visibilitychange",t,!1),n())},e.addEventListener("visibilitychange",t,!1)}).s(function(n){throw e.removeEventListener("visibilitychange",t,!1),n})}function Ee(e){try{var t=new Date(parseInt(e,10));if(!isNaN(t.getTime())&&!/[^0-9]/.test(e))return t.toUTCString()}catch(e){}return null}function Fe(){return G("fireauth.oauthhelper",yc)||G("fireauth.iframe",yc)}function Ge(e){qe[e]||(qe[e]=!0,"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e))}function Ie(e,t,n){He?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n}):e[t]=n}function I(e,t){if(t)for(var n in t)t.hasOwnProperty(n)&&Ie(e,n,t[n])}function J(e){var t={};return I(t,e),t}function Le(e){var t={},n;for(n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function Me(e,t){if(!t||!t.length)return!0;if(!e)return!1;for(var n=0,o;n>4),64!=s&&(n(240&e<<4|s>>2),64!=l&&n(192&s<<6|l))}}function To(){if(!rp){rp={},ap={};for(var e=0;65>e;e++)rp[e]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(e),ap[rp[e]]=e,62<=e&&(ap["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.".charAt(e)]=e)}}function Eo(e){this.c=e.sub,ja(),this.a=e.provider_id||e.firebase&&e.firebase.sign_in_provider||null,this.b=!!e.is_anonymous||"anonymous"==this.a}function Ao(e){return(e=Io(e))&&e.sub&&e.iss&&e.aud&&e.exp?new Eo(e):null}function Io(e){if(!e)return null;if(e=e.split("."),3!=e.length)return null;e=e[1];for(var t=(4-e.length%4)%4,n=0;n Auth section -> Sign in method tab.",e):"http"==n||"https"==n?o=ht("This domain (%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.",e):t="operation-not-supported-in-this-environment",Pe.call(this,t,o)}function cr(e,t,n){Pe.call(this,e,n),e=t||{},e.wb&&Ie(this,"email",e.wb),e.$&&Ie(this,"phoneNumber",e.$),e.credential&&Ie(this,"credential",e.credential)}function pr(e){if(e.code){var t=e.code||"";0==t.indexOf(We)&&(t=t.substring(We.length));var n={credential:rr(e)};if(e.email)n.wb=e.email;else if(e.phoneNumber)n.$=e.phoneNumber;else return new Pe(t,e.message||void 0);return new cr(t,n,e.message)}return null}function ur(){}function mr(e){return e.c||(e.c=e.b())}function hr(){}function gr(e){if(!e.f&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var t=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],n=0,o;nn;n++){i=0|o[n-15],r=0|o[n-2];var e=0|(0|o[n-16])+((i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3),s=0|(0|o[n-7])+((r>>>17|r<<15)^(r>>>19|r<<13)^r>>>10);o[n]=0|e+s}r=0|t.a[0],i=0|t.a[1];var l=0|t.a[2],d=0|t.a[3],c=0|t.a[4],p=0|t.a[5],u=0|t.a[6];for(e=0|t.a[7],n=0;64>n;n++){var m=0|((r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10))+(r&i^r&l^i&l);s=c&p^~c&u,e=0|e+((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7)),s=0|s+(0|eu[n]),s=0|e+(0|s+(0|o[n])),e=u,u=p,p=c,c=0|d+s,d=l,l=i,i=r,r=0|s+m}t.a[0]=0|t.a[0]+r,t.a[1]=0|t.a[1]+i,t.a[2]=0|t.a[2]+l,t.a[3]=0|t.a[3]+d,t.a[4]=0|t.a[4]+c,t.a[5]=0|t.a[5]+p,t.a[6]=0|t.a[6]+u,t.a[7]=0|t.a[7]+e}function bs(t,n,o){void 0===o&&(o=n.length);var r=0,i=t.c;if(s(n))for(;r=e&&e==(0|e)))throw Error("message must be a byte array");t.f[i++]=e,i==t.b&&(ys(t),i=0)}else throw Error("message must be string or array");t.c=i,t.g+=o}function xs(){fs.call(this,8,iu)}function vs(t,n,o,r,i){this.l=t,this.i=n,this.m=o,this.o=r||null,this.u=i||null,this.h=n+":"+o,this.v=new gs,this.g=new ms(this.h),this.f=null,this.b=[],this.a=this.c=null}function ks(e){return new Pe("invalid-cordova-configuration",e)}function Ss(){for(var e=20,t=[];0n.c?bs(n,ru,56-n.c):bs(n,ru,n.b-(n.c-56));for(var r=63;56<=r;r--)n.f[r]=255&o,o/=256;for(ys(n),r=o=0;r>i;return So(t)}function ws(t,n,o,r){var i=Ss(),e=new ir(n,r,null,i,new Pe("no-auth-event")),s=G("BuildInfo.packageName",yc);if("string"!=typeof s)throw new Pe("invalid-cordova-configuration");var l=G("BuildInfo.displayName",yc),d={};if(re().toLowerCase().match(/iphone|ipad|ipod/))d.ibi=s;else if(re().toLowerCase().match(/android/))d.apn=s;else return A(new Pe("operation-not-supported-in-this-environment"));l&&(d.appDisplayName=l),i=Cs(i),d.sessionId=i;var p=_i(t.l,t.i,t.m,n,o,null,r,t.o,d,t.u);return t.ga().then(function(){var n=t.h;return t.v.a.set(Zp,e.D(),n)}).then(function(){var e=G("cordova.plugins.browsertab.isAvailable",yc);if("function"!=typeof e)throw new Pe("invalid-cordova-configuration");var n=null;e(function(e){if(e){if(n=G("cordova.plugins.browsertab.openUrl",yc),"function"!=typeof n)throw new Pe("invalid-cordova-configuration");n(p)}else{if(n=G("cordova.InAppBrowser.open",yc),"function"!=typeof n)throw new Pe("invalid-cordova-configuration");e=re(),e=e.match(/(iPad|iPhone|iPod).*OS 7_\d/i)||e.match(/(iPad|iPhone|iPod).*OS 8_\d/i),t.a=n(p,e?"_blank":"_system","location=yes")}})})}function Ts(e,t){for(var n=0;ne.f&&(e.a=e.f),t)}function Rl(e,t){e.stop(),e.b=yn(_l(e,t)).then(function(){return De()}).then(function(){return e.h()}).then(function(){Rl(e,!0)}).s(function(t){e.i(t)&&Rl(e,!1)})}function ed(e){this.f=e,this.b=this.a=null,this.c=0}function od(e,t){var n=t[Ip],o=t.refreshToken;t=id(t.expiresIn),e.b=n,e.c=t,e.a=o}function rd(e,t){e.b=t.b,e.a=t.a,e.c=t.c}function id(e){return ja()+1E3*parseInt(e,10)}function sd(e,t){return pa(e.f,t).then(function(t){return e.b=t.access_token,e.c=id(t.expires_in),e.a=t.refresh_token,{accessToken:e.b,expirationTime:e.c,refreshToken:e.a}}).s(function(t){throw"auth/user-token-expired"==t.code&&(e.a=null),t})}function ld(e,t){this.a=e||null,this.b=t||null,I(this,{lastSignInTime:Ee(t||null),creationTime:Ee(e||null)})}function dd(e){return new ld(e.a,e.b)}function ud(t,n,o,r,i,e){I(this,{uid:t,displayName:r||null,photoURL:i||null,email:o||null,phoneNumber:e||null,providerId:n})}function md(e,t){for(var n in Qt.call(this,e),t)this[n]=t[n]}function hd(e,t,n){this.G=[],this.l=e.apiKey,this.o=e.appName,this.u=e.authDomain||null,e=uc.SDK_VERSION?xo(uc.SDK_VERSION):null,this.b=new ra(this.l,Ka(wi),e),this.h=new ed(this.b),Ed(this,t[Ip]),od(this.h,t),Ie(this,"refreshToken",this.h.a),al(this,n||{}),mn.call(this),this.I=!1,this.u&&se()&&(this.a=Us(this.u,this.l,this.o)),this.N=[],this.i=null,this.w=vd(this),this.V=z(this.Ha,this);var o=this;this.ka=null,this.sa=function(e){o.oa(e.g)},this.X=null,this.O=[],this.ra=function(e){fd(o,e.c)},this.W=null}function gd(e,t){e.X&&an(e.X,"languageCodeChanged",e.sa),(e.X=t)&&tn(t,"languageCodeChanged",e.sa)}function fd(e,t){e.O=t,la(e.b,uc.SDK_VERSION?xo(uc.SDK_VERSION,e.O):null)}function yd(e,t){e.W&&an(e.W,"frameworkChanged",e.ra),(e.W=t)&&tn(t,"frameworkChanged",e.ra)}function bd(e){try{return uc.app(e.o).auth()}catch(t){throw new Pe("internal-error","No firebase.auth.Auth instance is available for the Firebase App '"+e.o+"'!")}}function vd(e){return new Zs(function(){return e.F(!0)},function(e){return e&&"auth/network-request-failed"==e.code},function(){var t=e.h.c-ja()-3E5;return 0i||i>=vu.length)throw new Pe("internal-error","Argument validator received an unsupported number of arguments.");o=vu[i],r=(r?"":o+" argument ")+(n.name?"\""+n.name+"\" ":"")+"must be "+n.K+".";break a}r=null}}if(r)throw new Pe("argument-error",t+" failed: "+r)}function Qd(e,t){return{name:e||"",K:"a valid string",optional:!!t,M:s}}function V(t,n){return{name:t||"",K:"a boolean",optional:!!n,M:e}}function Jd(e,t){return{name:e||"",K:"a valid object",optional:!!t,M:j}}function W(e,t){return{name:e||"",K:"a function",optional:!!t,M:h}}function $d(e,t){return{name:e||"",K:"null",optional:!!t,M:c}}function Yd(){return{name:"",K:"an HTML element",optional:!1,M:function(e){return!!(e&&e instanceof Element)}}}function Zd(){return{name:"auth",K:"an instance of Firebase Auth",optional:!0,M:function(e){return!!(e&&e instanceof Dl)}}}function ec(){return{name:"app",K:"an instance of Firebase App",optional:!0,M:function(e){return!!(e&&e instanceof uc.app.App)}}}function tc(e){return{name:e?e+"Credential":"credential",K:e?"a valid "+e+" credential":"a valid credential",optional:!1,M:function(t){if(!t)return!1;var n=!e||t.providerId===e;return t.ya&&n}}}function rc(){return{name:"authProvider",K:"a valid Auth provider",optional:!1,M:function(e){return!!(e&&e.providerId&&e.hasOwnProperty&&e.hasOwnProperty("isOAuthProvider"))}}}function ic(){return{name:"applicationVerifier",K:"an implementation of firebase.auth.ApplicationVerifier",optional:!1,M:function(e){return!!(e&&s(e.type)&&h(e.verify))}}}function sc(e,t,n,o){return{name:n||"",K:e.K+" or "+t.K,optional:!!o,M:function(n){return e.M(n)||t.M(n)}}}function X(e,t){for(var n in t){var o=t[n].name;e[o]=Z(o,e[n],t[n].j)}}function Y(t,n){for(var o in n){var r=n[o].name;if(r!==o){var i=n[o].qb;Object.defineProperty(t,r,{get:function(){return this[o]},set:function(e){Xd(r,[i],[e],!0),this[o]=e},enumerable:!0})}}}function lc(e,t,n,o){e[t]=Z(t,n,o)}function Z(t,n,o){function r(){var e=Array.prototype.slice.call(arguments);return Xd(i,o,e),n.apply(this,e)}if(!o)return n;var i=pc(t),e;for(e in n)r[e]=n[e];for(e in n.prototype)r.prototype[e]=n.prototype[e];return r}function pc(e){return e=e.split("."),e[e.length-1]}var uc=o("dP58").default,mc=mc||{},yc=this,k="closure_uid_"+(1E9*Math.random()>>>0),ia=0,ja=Date.now||function(){return+new Date},na;$(et,Error),et.prototype.name="CustomError",$(u,et),u.prototype.name="AssertionError",nt.prototype.get=function(){if(0/g,Qa=/"/g,Ra=/'/g,Sa=/\x00/g,Ta=/[\x00&<>"']/,Na;a:{var Va=yc.navigator;if(Va){var Wa=Va.userAgent;if(Wa){Na=Wa;break a}}Na=""}var Xa=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],xc=!1,vc=new rt,ya=0,kc=2,Sc=3,Cc,wc;y.prototype.reset=function(){this.f=this.b=this.g=this.a=null,this.c=!1};var Tc=new nt(function(){return new y},function(e){e.reset()});Et.prototype.then=function(e,t,n){return Mt(this,h(e)?e:null,h(t)?t:null,n)},t(Et),na=Et.prototype,na.ia=function(e,t){return e=At(e,e,t),e.c=!0,Ot(this,e),this},na.s=function(e,t){return Mt(this,null,e,t)},na.cancel=function(e){this.a==ya&&Ct(function(){var t=new jt(e);_t(this,t)},this)},na.Lc=function(e){this.a=ya,Dt(this,kc,e)},na.Mc=function(e){this.a=ya,Dt(this,Sc,e)},na.Ub=function(){for(var e;e=Bt(this);)Ut(this,e,this.a,this.i);this.h=!1};var Ac=kt;$(jt,et),jt.prototype.name="cancel";var Ic=0,Nc={};Wt.prototype.pa=!1,Wt.prototype.ua=function(){if(this.ja)for(;this.ja.length;)this.ja.shift()()},Ht[" "]=p;var Lc=yt("Opera"),_c=yt("Trident")||yt("MSIE"),Mc=yt("Edge"),Dc=Mc||_c,Rc=yt("Gecko")&&(!ft(Na.toLowerCase(),"webkit")||yt("Edge"))&&!(yt("Trident")||yt("MSIE"))&&!yt("Edge"),Pc=ft(Na.toLowerCase(),"webkit")&&!yt("Edge"),Fc;a:{var Bc="",Uc=function(){var e=Na;return Rc?/rv:([^\);]+)(\)|;)/.exec(e):Mc?/Edge\/([\d\.]+)/.exec(e):_c?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(e):Pc?/WebKit\/(\S+)/.exec(e):Lc?/(?:Version)[ \/]?(\S+)/.exec(e):void 0}();if(Uc&&(Bc=Uc?Uc[1]:""),_c){var Vc=Gt();if(null!=Vc&&Vc>parseFloat(Bc)){Fc=Vc+"";break a}}Fc=Bc}var jc={},Wc=yc.document,zc;zc=Wc&&_c?Gt()||("CSS1Compat"==Wc.compatMode?parseInt(Fc,10):5):void 0;var Hc=Object.freeze||function(e){return e},ac=!_c||9<=+zc,Kc=_c&&!Xt("9"),cc=function(){if(!yc.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});return yc.addEventListener("test",p,t),yc.removeEventListener("test",p,t),e}();Qt.prototype.preventDefault=function(){this.Gb=!1},$(C,Qt);var dc=Hc({2:"touch",3:"pen",4:"mouse"});C.prototype.preventDefault=function(){C.lb.preventDefault.call(this);var e=this.a;if(e.preventDefault)e.preventDefault();else if(e.returnValue=!1,Kc)try{(e.ctrlKey||112<=e.keyCode&&123>=e.keyCode)&&(e.keyCode=-1)}catch(e){}},C.prototype.f=function(){return this.a};var fc="closure_listenable_"+(0|1E6*Math.random()),gc=0;Yt.prototype.add=function(t,n,o,r,i){var e=t.toString();t=this.a[e],t||(t=this.a[e]=[],this.b++);var s=en(t,n,r,i);return-1>>0);$(mn,Wt),mn.prototype[fc]=!0,mn.prototype.addEventListener=function(e,t,n,o){tn(this,e,t,n,o)},mn.prototype.removeEventListener=function(e,t,n,o){an(this,e,t,n,o)},mn.prototype.dispatchEvent=function(t){var n=this.Ua,o;if(n)for(o=[];n;n=n.Ua)o.push(n);n=this.Nb;var r=t.type||t;if(s(t))t=new Qt(t,n);else if(t instanceof Qt)t.target=t.target||n;else{var i=t;t=new Qt(r,n),vt(t,i)}if(i=!0,o)for(var e=o.length-1,l;0<=e;e--)l=t.b=o[e],i=gn(l,r,!0,t)&&i;if(l=t.b=n,i=gn(l,r,!0,t)&&i,i=gn(l,r,!1,t)&&i,o)for(e=0;e"),no(""),no("
");var Gd={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"},Ld={'"':"\\\"","\\":"\\\\","/":"\\/","":"\\b"," ":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"," ":"\\u000b"},Td=/\uffff/.test("\uFFFF")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g,Ud=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,ge="Firefox",ee="Chrome",ae={Sc:"FirebaseCore-web",Uc:"FirebaseUI-web"};Be.prototype.get=function(){var e=yc.navigator;return(e&&"boolean"==typeof e.onLine&&(ue()||"chrome-extension:"===ve()||"undefined"!=typeof e.connection)?e.onLine:1)?this.b?this.c:this.a:Math.min(5E3,this.a)};var qe={},He;try{var Je={};Object.defineProperty(Je,"abcd",{configurable:!0,enumerable:!0,value:1}),Object.defineProperty(Je,"abcd",{configurable:!0,enumerable:!0,value:2}),He=2==Je.abcd}catch(e){He=!1}var Ke="EMAIL_SIGNIN",Te="email",Qe="newEmail",Re="requestType",Se="email",Ve="fromEmail",Ue="data",Xe="operation";$(Pe,Error),Pe.prototype.D=function(){return{code:this.code,message:this.message}},Pe.prototype.toJSON=function(){return this.D()};var We="auth/",Ye={"argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-already-in-use":"The email address is already in use by another account.","expired-action-code":"The action code has expired. ","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal error has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registed for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal error has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-email":"The email address is badly formatted.","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is malformed or has expired.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal error has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network error (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal error has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":"This operation is not supported in the environment this application is running on. \"location.protocol\" must be http, https or chrome-extension and web storage must be enabled.","popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","user-cancelled":"User did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled."},Ze="android",$c="handleCodeInApp",Yc="iOS",Zc="url",ep="installApp",tp="minimumVersion",np="packageName",op="bundleId",rp=null,ap=null;Eo.prototype.f=function(){return this.b};var ip=["oauth_consumer_key","oauth_nonce","oauth_signature","oauth_signature_method","oauth_timestamp","oauth_token","oauth_version"],sp=["client_id","response_type","scope","redirect_uri","state"],lp={Tc:{Ma:"locale",Ba:500,Aa:600,Na:"facebook.com",eb:sp},Vc:{Ma:null,Ba:500,Aa:620,Na:"github.com",eb:sp},Wc:{Ma:"hl",Ba:515,Aa:680,Na:"google.com",eb:sp},bd:{Ma:"lang",Ba:485,Aa:705,Na:"twitter.com",eb:ip}},dp="idToken",cp="providerId";$(Oo,_o),$(Mo,Oo),$(Do,Oo),$(Ro,Oo),$(Po,Oo),Vo.prototype.ya=function(e){return Ma(e,qo(this))},Vo.prototype.c=function(e,t){var n=qo(this);return n.idToken=t,Da(e,n)},Vo.prototype.f=function(e,t){var n=qo(this);return Uo(Fa(e,n),t)},Vo.prototype.D=function(){var e={providerId:this.providerId,signInMethod:this.signInMethod};return this.idToken&&(e.oauthIdToken=this.idToken),this.accessToken&&(e.oauthAccessToken=this.accessToken),this.secret&&(e.oauthTokenSecret=this.secret),e},jo.prototype.Da=function(e){return this.vb=xt(e),this},$(Wo,jo),Wo.prototype.ta=function(e){return dt(this.a,e)||this.a.push(e),this},Wo.prototype.Ab=function(){return mt(this.a)},Wo.prototype.credential=function(e,t){if(!e&&!t)throw new Pe("argument-error","credential failed: must provide the ID token and/or the access token.");return new Vo(this.providerId,{idToken:e||null,accessToken:t||null},this.providerId)},$(M,Wo),Ie(M,"PROVIDER_ID","facebook.com"),Ie(M,"FACEBOOK_SIGN_IN_METHOD","facebook.com"),$(Ho,Wo),Ie(Ho,"PROVIDER_ID","github.com"),Ie(Ho,"GITHUB_SIGN_IN_METHOD","github.com"),$(Go,Wo),Ie(Go,"PROVIDER_ID","google.com"),Ie(Go,"GOOGLE_SIGN_IN_METHOD","google.com"),$(Qo,jo),Ie(Qo,"PROVIDER_ID","twitter.com"),Ie(Qo,"TWITTER_SIGN_IN_METHOD","twitter.com"),$o.prototype.ya=function(e){return this.signInMethod==Yo.EMAIL_LINK_SIGN_IN_METHOD?qa(e,gi,{email:this.a,oobCode:this.b}):qa(e,vi,{email:this.a,password:this.b})},$o.prototype.c=function(e,t){return this.signInMethod==Yo.EMAIL_LINK_SIGN_IN_METHOD?qa(e,Bp,{idToken:t,email:this.a,oobCode:this.b}):qa(e,qp,{idToken:t,email:this.a,password:this.b})},$o.prototype.f=function(e,t){return Uo(this.ya(e),t)},$o.prototype.D=function(){return{email:this.a,password:this.b,signInMethod:this.signInMethod}},I(Yo,{PROVIDER_ID:"password"}),I(Yo,{EMAIL_LINK_SIGN_IN_METHOD:"emailLink"}),I(Yo,{EMAIL_PASSWORD_SIGN_IN_METHOD:"password"}),er.prototype.ya=function(e){return e.Ta(tr(this))},er.prototype.c=function(e,t){var n=tr(this);return n.idToken=t,qa(e,ei,n)},er.prototype.f=function(e,t){var n=tr(this);return n.operation="REAUTH",e=qa(e,Hp,n),Uo(e,t)},er.prototype.D=function(){var e={providerId:"phone"};return this.a.Sa&&(e.verificationId=this.a.Sa),this.a.Ra&&(e.verificationCode=this.a.Ra),this.a.Fa&&(e.temporaryProof=this.a.Fa),this.a.$&&(e.phoneNumber=this.a.$),e},nr.prototype.Ta=function(e,t){var n=this.a.b;return It(t.verify()).then(function(o){if(!s(o))throw new Pe("argument-error","An implementation of firebase.auth.ApplicationVerifier.prototype.verify() must return a firebase.Promise that resolves with a string.");switch(t.type){case"recaptcha":return Ea(n,{phoneNumber:e,recaptchaToken:o}).then(function(e){return"function"==typeof t.reset&&t.reset(),e},function(e){throw"function"==typeof t.reset&&t.reset(),e});default:throw new Pe("argument-error","Only firebase.auth.ApplicationVerifiers with type=\"recaptcha\" are currently supported.");}})},I(nr,{PROVIDER_ID:"phone"}),I(nr,{PHONE_SIGN_IN_METHOD:"phone"}),ir.prototype.D=function(){return{type:this.b,eventId:this.c,urlResponse:this.f,sessionId:this.g,error:this.a&&this.a.D()}};var pp=null;lr.prototype.subscribe=function(e){var t=this;this.a.push(e),this.b||(this.b=function(e){for(var n=0;n=Sr(this).value)for(h(t)&&(t=t()),e=new xr(e,t+"",this.f),n&&(e.a=n),n=this;n;)n=n.a};var xp={},vp=null;$(P,ur),P.prototype.a=function(){return new Tr(this.f)},P.prototype.b=function(e){return function(){return e}}({}),$(Tr,mn);var kp=0;na=Tr.prototype,na.open=function(e,t){if(this.readyState!=kp)throw this.abort(),Error("Error reopening a connection");this.h=e,this.c=t,this.readyState=1,Er(this)},na.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.a=!0;var t={headers:this.g,method:this.h,credentials:void 0,cache:void 0};e&&(t.body=e),this.i.fetch(new Request(this.c,t)).then(this.ec.bind(this),this.Cb.bind(this))},na.abort=function(){this.responseText="",this.g=new Headers,this.status=0,1<=this.readyState&&this.a&&4!=this.readyState&&(this.readyState=4,this.a=!1,Er(this)),this.readyState=kp},na.ec=function(e){this.a&&(this.b||(this.b=e.headers,this.readyState=2,Er(this)),this.a&&(this.readyState=3,Er(this),this.a&&e.text().then(this.dc.bind(this,e),this.Cb.bind(this))))},na.dc=function(e,t){this.a&&(this.status=e.status,this.statusText=e.statusText,this.responseText=t,this.readyState=4,Er(this))},na.Cb=function(e){var t=this.f;t&&t.log(fp,"Failed to fetch url "+this.c,e instanceof Error?e:Error(e)),this.a&&(this.readyState=4,Er(this))},na.setRequestHeader=function(e,t){this.g.append(e,t)},na.getResponseHeader=function(e){return this.b?this.b.get(e.toLowerCase())||"":((e=this.f)&&e.log(fp,"Attempting to get response header but no headers have been received for url: "+this.c,void 0),"")},na.getAllResponseHeaders=function(){if(!this.b){var e=this.f;return e&&e.log(fp,"Attempting to get all response headers but no headers have been received for url: "+this.c,void 0),""}e=[];for(var t=this.b.entries(),n=t.next();!n.done;)n=n.value,e.push(n[0]+": "+n[1]),n=t.next();return e.join("\r\n")},$(Ar,mn);var Sp="";Ar.prototype.b=Cr("goog.net.XhrIo");var Cp=/^https?$/i,wp=["POST","PUT"];na=Ar.prototype,na.Ga=function(){"undefined"!=typeof mc&&this.a&&(this.h="Timed out after "+this.g+"ms, aborting",wr(this.b,Ur(this,this.h)),this.dispatchEvent("timeout"),this.abort(8))},na.abort=function(){this.a&&this.c&&(wr(this.b,Ur(this,"Aborting")),this.c=!1,this.f=!0,this.a.abort(),this.f=!1,this.dispatchEvent("complete"),this.dispatchEvent("abort"),Dr(this))},na.ua=function(){this.a&&(this.c&&(this.c=!1,this.f=!0,this.a.abort(),this.f=!1),Dr(this,!0)),Ar.lb.ua.call(this)},na.Fb=function(){this.pa||(this.I||this.i||this.f?Mr(this):this.tc())},na.tc=function(){Mr(this)},na.getResponse=function(){try{if(!this.a)return null;if("response"in this.a)return this.a.response;switch(this.o){case Sp:case"text":return this.a.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in this.a)return this.a.mozResponseArrayBuffer;}var e=this.b;return e&&e.log(gp,"Response type "+this.o+" is not supported on this browser",void 0),null}catch(e){return wr(this.b,"Can not get response: "+e.message),null}},Vr.prototype.cancel=function(e){if(this.a)this.c instanceof Vr&&this.c.cancel();else{if(this.b){var t=this.b;delete this.b,e?t.cancel(e):(t.m--,0>=t.m&&t.cancel())}this.v?this.v.call(this.u,this):this.l=!0,this.a||(e=new Xr(this),jr(this),qr(this,!1,e))}},Vr.prototype.o=function(e,t){this.i=!1,qr(this,e,t)},Vr.prototype.C=function(){jr(this),qr(this,!0,null)},Vr.prototype.then=function(t,n,o){var r=new Et(function(e,t){i=e,s=t}),i,s;return zr(this,i,function(e){e instanceof Xr?r.cancel():s(e)}),r.then(t,n,o)},t(Vr),$(Gr,et),Gr.prototype.message="Deferred has already fired",Gr.prototype.name="AlreadyCalledError",$(Xr,et),Xr.prototype.message="Deferred was canceled",Xr.prototype.name="CanceledError",Qr.prototype.c=function(){throw delete Tp[this.a],this.b};var Tp={},Ep=0,Ap=1;$(ta,et),$(oa,ur),oa.prototype.a=function(){return new this.f},oa.prototype.b=function(){return{}};var Ip="idToken",L=new Be(3E4,6E4),Np={"Content-Type":"application/x-www-form-urlencoded"},Lp=new Be(3E4,6E4),_p={"Content-Type":"application/json"},Op;ra.prototype.o=function(t,o,r,i,s,e){if(le()&&("undefined"==typeof yc.fetch||"undefined"==typeof yc.Headers||"undefined"==typeof yc.Request))throw new Pe("operation-not-supported-in-this-environment","fetch, Headers and Request native APIs or equivalent Polyfills must be available to support HTTP requests from a Worker environment.");var l=new Ar(this.c);if(e){l.g=n(0,e);var d=setTimeout(function(){l.dispatchEvent("timeout")},e)}E(l,"complete",function(){d&&clearTimeout(d);var e=null;try{e=JSON.parse(Br(this))||null}catch(t){e=null}o&&o(e)}),hn(l,"ready",function(){d&&clearTimeout(d),zt(this)}),hn(l,"timeout",function(){d&&clearTimeout(d),zt(this),o&&o(null)}),Ir(l,t,r,i,s)};var Mp=Hn("https://apis.google.com/js/client.js?onload=%{onload}"),Dp="__fcb"+i(1E6*Math.random()).toString();ra.prototype.l=function(t,n,o,r,i){var s=this;Op.then(function(){window.gapi.client.setApiKey(s.b);var l=window.gapi.auth.getToken();window.gapi.auth.setToken(null),window.gapi.client.request({path:t,method:o,body:r,headers:i,authType:"none",callback:function(e){window.gapi.auth.setToken(l),n&&n(e)}})}).s(function(e){n&&n({error:{message:e&&e.message||"CORS_UNSUPPORTED"}})})},ra.prototype.Pa=function(){return qa(this,jp,{})},ra.prototype.mb=function(e,t){return qa(this,di,{idToken:e,email:t})},ra.prototype.nb=function(e,t){return qa(this,qp,{idToken:e,password:t})};var Rp={displayName:"DISPLAY_NAME",photoUrl:"PHOTO_URL"};na=ra.prototype,na.ob=function(e,t){var n={idToken:e},o=[];return x(Rp,function(r,i){var s=t[i];null===s?o.push(r):i in t&&(n[i]=s)}),o.length&&(n.deleteAttribute=o),qa(this,di,n)},na.hb=function(e,t){return e={requestType:"PASSWORD_RESET",email:e},vt(e,t),qa(this,ci,e)},na.ib=function(e,t){return e={requestType:"EMAIL_SIGNIN",email:e},vt(e,t),qa(this,ti,e)},na.gb=function(e,t){return e={requestType:"VERIFY_EMAIL",idToken:e},vt(e,t),qa(this,bi,e)},na.Ta=function(e){return qa(this,zp,e)},na.Xa=function(e,t){return qa(this,ui,{oobCode:e,newPassword:t})},na.Ja=function(e){return qa(this,qi,{oobCode:e})},na.Va=function(e){return qa(this,Pp,{oobCode:e})};var Pp={endpoint:"setAccountInfo",B:Ua,da:"email"},qi={endpoint:"resetPassword",B:Ua,J:function(e){var t=e.requestType;if(!t||!e.email&&"EMAIL_SIGNIN"!=t)throw new Pe("internal-error")}},pi={endpoint:"signupNewUser",B:function(e){if(ma(e),!e.password)throw new Pe("weak-password")},J:va,R:!0},ri={endpoint:"createAuthUri"},Fp={endpoint:"deleteAccount",T:["idToken"]},si={endpoint:"setAccountInfo",T:["idToken","deleteProvider"],B:function(e){if(!_(e.deleteProvider))throw new Pe("internal-error")}},gi={endpoint:"emailLinkSignin",T:["email","oobCode"],B:ma,J:va,R:!0},Bp={endpoint:"emailLinkSignin",T:["idToken","email","oobCode"],B:ma,J:va,R:!0},Up={endpoint:"getAccountInfo"},ti={endpoint:"getOobConfirmationCode",T:["requestType"],B:function(e){if("EMAIL_SIGNIN"!=e.requestType)throw new Pe("internal-error");ma(e)},da:"email"},bi={endpoint:"getOobConfirmationCode",T:["idToken","requestType"],B:function(e){if("VERIFY_EMAIL"!=e.requestType)throw new Pe("internal-error")},da:"email"},ci={endpoint:"getOobConfirmationCode",T:["requestType"],B:function(e){if("PASSWORD_RESET"!=e.requestType)throw new Pe("internal-error");ma(e)},da:"email"},ai={rb:!0,endpoint:"getProjectConfig",Eb:"GET"},Vp={rb:!0,endpoint:"getRecaptchaParam",Eb:"GET",J:function(e){if(!e.recaptchaSiteKey)throw new Pe("internal-error")}},ui={endpoint:"resetPassword",B:Ua,da:"email"},oi={endpoint:"sendVerificationCode",T:["phoneNumber","recaptchaToken"],da:"sessionInfo"},di={endpoint:"setAccountInfo",T:["idToken"],B:ha,R:!0},qp={endpoint:"setAccountInfo",T:["idToken"],B:function(e){if(ha(e),!e.password)throw new Pe("weak-password")},J:va,R:!0},jp={endpoint:"signupNewUser",J:va,R:!0},Wp={endpoint:"verifyAssertion",B:Ia,J:_a,R:!0},ki={endpoint:"verifyAssertion",B:Ia,J:function(e){if(e.errorMessage&&"USER_NOT_FOUND"==e.errorMessage)throw new Pe("user-not-found");if(e.errorMessage)throw O(e.errorMessage);if(!e[Ip])throw new Pe("internal-error")},R:!0},mi={endpoint:"verifyAssertion",B:function(e){if(Ia(e),!e.idToken)throw new Pe("internal-error")},J:_a,R:!0},li={endpoint:"verifyCustomToken",B:function(e){if(!e.token)throw new Pe("invalid-custom-token")},J:va,R:!0},vi={endpoint:"verifyPassword",B:function(e){if(ma(e),!e.password)throw new Pe("wrong-password")},J:va,R:!0},zp={endpoint:"verifyPhoneNumber",B:ka,J:va},ei={endpoint:"verifyPhoneNumber",B:function(e){if(!e.idToken)throw new Pe("internal-error");ka(e)},J:function(e){if(e.temporaryProof)throw e.code="credential-already-in-use",pr(e);va(e)}},Hp={Tb:{USER_NOT_FOUND:"user-not-found"},endpoint:"verifyPhoneNumber",B:ka,J:va},Kp={Yc:{Za:"https://www.googleapis.com/identitytoolkit/v3/relyingparty/",fb:"https://securetoken.googleapis.com/v1/token",id:"p"},$c:{Za:"https://staging-www.sandbox.googleapis.com/identitytoolkit/v3/relyingparty/",fb:"https://staging-securetoken.sandbox.googleapis.com/v1/token",id:"s"},ad:{Za:"https://www-googleapis-test.sandbox.google.com/identitytoolkit/v3/relyingparty/",fb:"https://test-securetoken.sandbox.googleapis.com/v1/token",id:"t"}},wi;wi=Ka("__EID__")?"__EID__":void 0;var yi=Hn("https://apis.google.com/js/api.js?onload=%{onload}"),Fi=new Be(3E4,6E4),Gi=new Be(5E3,15E3),Ci=null;fi.prototype.toString=function(){return this.f?Nn(this.a,"v",this.f):Bn(this.a.a,"v"),this.b?Nn(this.a,"eid",this.b):Bn(this.a.a,"eid"),this.c.length?Nn(this.a,"fw",this.c.join(",")):Bn(this.a.a,"fw"),this.a.toString()},xi.prototype.toString=function(){var t=_n(this.o,"/__/auth/handler");if(Nn(t,"apiKey",this.l),Nn(t,"appName",this.c),Nn(t,"authType",this.m),this.a.isOAuthProvider){var n=this.a;try{var o=uc.app(this.c).auth().ea()}catch(e){o=null}for(var r in n.Ya=o,Nn(t,"providerId",this.a.providerId),n=this.a,o=xe(n.vb),o)o[r]=o[r].toString();r=n.Ac,o=xt(o);for(var i=0,e;ithis.c-3E4?this.a?sd(this,{grant_type:"refresh_token",refresh_token:this.a}):It(null):It({accessToken:this.b,expirationTime:this.c,refreshToken:this.a})},ld.prototype.D=function(){return{lastLoginAt:this.b,createdAt:this.a}},$(md,Qt),$(hd,mn),hd.prototype.oa=function(e){this.ka=e,sa(this.b,e)},hd.prototype.ea=function(){return this.ka},hd.prototype.xa=function(){return mt(this.O)},hd.prototype.Ha=function(){this.w.b&&(this.w.stop(),this.w.start())},Ie(hd.prototype,"providerId","firebase"),na=hd.prototype,na.reload=function(){var e=this;return ql(this,bl(this).then(function(){return hl(e).then(function(){return Nd(e)}).then(Od)}))},na.ac=function(e){return this.F(e).then(function(e){return new Ys(e)})},na.F=function(e){var t=this;return ql(this,bl(this).then(function(){return t.h.getToken(e)}).then(function(e){if(!e)throw new Pe("internal-error");return e.accessToken!=t.qa&&(Ed(t,e.accessToken),t.dispatchEvent(new md("tokenChanged"))),fl(t,"refreshToken",e.refreshToken),e.accessToken}))},na.uc=function(e){if(e=e.users,!e||!e.length)throw new Pe("internal-error");e=e[0],al(this,{uid:e.localId,displayName:e.displayName,photoURL:e.photoUrl,email:e.email,emailVerified:!!e.emailVerified,phoneNumber:e.phoneNumber,lastLoginAt:e.lastLoginAt,createdAt:e.createdAt});for(var t=jl(e),n=0;nthis.u&&(this.u=0),0==this.u&&S(this)&&Sd(S(this)),this.removeAuthTokenListener(e)},na.addAuthTokenListener=function(e){var t=this;this.o.push(e),Yl(this,this.i.then(function(){t.l||dt(t.o,e)&&e(U(t))}))},na.removeAuthTokenListener=function(e){pt(this.o,function(t){return t==e})},na.delete=function(){this.l=!0;for(var e=0;e=n||(c.line>=n&&(c=d(n,0)),n=i.line,null==r?t.uncomment(i,c,e)?r="un":(t.lineComment(i,c,e),r="line"):"un"==r?t.uncomment(i,c,e):t.lineComment(i,c,e))}}),e.defineExtension("lineComment",function(e,i,c){c||(c=s);var p=this,u=r(p,e),m=p.getLine(e.line);if(!(null==m||n(p,e,m))){var h=c.lineComment||u.lineComment;if(!h)return void((c.blockCommentStart||u.blockCommentStart)&&(c.fullLines=!0,p.blockComment(e,i,c)));var g=o(0!=i.ch||i.line==e.line?i.line+1:i.line,p.lastLine()+1),f=null==c.padding?" ":c.padding,y=c.commentBlankLines||e.line==i.line;p.operation(function(){if(c.indent){for(var n=null,o=e.line;oi.length)&&(n=i)}for(var o=e.line;oh||c.operation(function(){if(!1!=n.fullLines){var o=l.test(c.getLine(h));c.replaceRange(g+m,d(h)),c.replaceRange(u+g,d(e.line,0));var r=n.blockCommentLead||p.blockCommentLead;if(null!=r)for(var s=e.line+1;s<=h;++s)(s!=h||o)&&c.replaceRange(r+g,d(s,0))}else c.replaceRange(m,t),c.replaceRange(u,e)})}}),e.defineExtension("uncomment",function(e,t,n){n||(n=s);var c=this,p=r(c,e),u=o(0!=t.ch||t.line==e.line?t.line:t.line-1,c.lastLine()),m=o(e.line,u),h=n.lineComment||p.lineComment,g=[],f=null==n.padding?" ":n.padding,y;lineComment:{if(!h)break lineComment;for(var b=m;b<=u;++b){var i=c.getLine(b),x=i.indexOf(h);if(-1n||(t.slice(o,o+f.length)==f&&(o+=f.length),y=!0,c.replaceRange("",d(e,n),d(e,o)))}}),y)return!0}var v=n.blockCommentStart||p.blockCommentStart,k=n.blockCommentEnd||p.blockCommentEnd;if(!v||!k)return!1;var S=n.blockCommentLead||p.blockCommentLead,C=c.getLine(m),w=C.indexOf(v);if(-1==w)return!1;var T=u==m?C:c.getLine(u),E=T.indexOf(k,u==m?w+v.length:0),A=d(m,w+1),I=d(u,E+1);if(-1==E||!/comment/.test(c.getTokenTypeAt(A))||!/comment/.test(c.getTokenTypeAt(I))||-1o&&0==n.ch)return t.clipPos(h(n.line-1));var r=t.getLine(n.line);if(0=r.length)return t.clipPos(h(n.line+1,0));for(var s="start",l=n.ch,d=0>o?0:r.length,c=0,i;l!=d;l+=o,c++){var p=r.charAt(0>o?l-1:l),u="_"!=p&&e.isWordChar(p)?"w":"o";if("w"==u&&p.toUpperCase()==p&&(u="W"),"start"==s)"o"!=u&&(s="in",i=u);else if("in"==s&&i!=u){if("w"==i&&"W"==u&&0>o&&l--,"W"==i&&"w"==u&&0n?o.from():o.to()})}function o(t,n){return t.isReadOnly()?e.Pass:void(t.operation(function(){for(var e=t.listSelections().length,o=[],r=-1,s=0,i;s=n&&e.execCommand("goLineUp")}e.scrollTo(null,t.top-e.defaultTextHeight())},m.scrollLineDown=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top,"local")+1;e.getCursor().line<=n&&e.execCommand("goLineDown")}e.scrollTo(null,t.top+e.defaultTextHeight())},m.splitSelectionByLine=function(e){for(var t=e.listSelections(),n=[],o=0;or.line&&s==i.line&&0==i.ch||n.push({anchor:s==r.line?r:h(s,0),head:s==i.line?i:h(s)});e.setSelections(n,0)},m.singleSelectionTop=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},m.selectLine=function(e){for(var t=e.listSelections(),n=[],o=0,r;or?o.push(d,c):o.length&&(o[o.length-1]=c),r=c}t.operation(function(){for(var e=0;et.lastLine()?t.replaceRange("\n"+i,h(t.lastLine()),null,"+swapLine"):t.replaceRange(i+"\n",h(r,0),null,"+swapLine")}t.setSelections(s),t.scrollIntoView()})},m.swapLineDown=function(t){if(t.isReadOnly())return e.Pass;for(var n=t.listSelections(),o=[],r=t.lastLine()+1,s=n.length-1;0<=s;s--){var i=n[s],l=i.to().line+1,d=i.from().line;0!=i.to().ch||i.empty()||l--,l=c?-1:d.lastIndexOf(r,c-1),-1==m){if(1==p)return;p=1,c=d.length;continue}if(1==p&&mv&&(v=i.length),0>k&&(k=i.length),x=Math.min(v,k),x==i.length)break;if(x==v)++h;else if(! --h){f=b,y=x;break outer}++x}return null==f||l==f&&y==u?void 0:{from:e.Pos(l,u),to:e.Pos(f,y)}}})})},dP58:function(e,t,n){"use strict";function o(){function e(e){return e=e||l,s(p,e)||r("no-app",{name:e}),p[e]}function t(){return Object.keys(p).map(function(e){return p[e]})}function n(e,t){Object.keys(u).forEach(function(n){var o=d(e,n);null===o||m[o]&&m[o](t,e)})}function d(e,t){if("serverAuth"===t)return null;e.options;return t}var p={},u={},m={},h={__esModule:!0,initializeApp:function(e,t){if(void 0===t&&(t={}),"object"!=typeof t||null===t){var o=t;t={name:o}}var i=t;void 0===i.name&&(i.name=l);var d=i.name;"string"==typeof d&&d||r("bad-app-name",{name:d+""}),s(p,d)&&r("duplicate-app",{name:d});var u=new c(e,i,h);return p[d]=u,n(u,"create"),u},app:e,apps:null,Promise:Promise,SDK_VERSION:"5.0.4",INTERNAL:{registerService:function(n,o,s,l,d){u[n]&&r("duplicate-service",{name:n}),u[n]=o,l&&(m[n]=l,t().forEach(function(e){l("create",e)}));var p=function(t){return void 0===t&&(t=e()),"function"!=typeof t[n]&&r("invalid-app-argument",{name:n}),t[n]()};return void 0!==s&&i.deepExtend(p,s),h[n]=p,c.prototype[n]=function(){for(var e=[],t=0;to)throw new gt(ht.INVALID_ARGUMENT,"Function "+e+"() requires between "+n+" and "+(o+" arguments, but was called with ")+U(t.length,"argument")+".")}function S(e,t,n,o){if(!(t instanceof Array)||t.lengthn.indexOf(t))throw new gt(ht.INVALID_ARGUMENT,"Unknown option '"+t+"' passed to function "+e+"(). Available options: "+n.join(", "))})}function F(e,t,n,o){var r=M(o);return new gt(ht.INVALID_ARGUMENT,"Function "+e+"() requires its "+B(n)+" "+("argument to be a "+t+", but it was: "+r))}function B(e){return 1===e?"first":2===e?"second":3===e?"third":e+"th"}function U(e,t){return e+" "+t+(1===e?"":"s")}function V(e,t){return et?1:0}function q(e,t){return null!==e&&void 0!==e?!!(t&&e.isEqual(t)):e===t}function j(e,t){if(e.length!==t.length)return!1;for(var n=0;nt?1:e===t?0:isNaN(e)?isNaN(t)?0:-1:1}function X(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t}function Q(e){return null===e||void 0===e}function J(e){return nn(e)&&e<=tn&&e>=en}function $(e,t,n){if(n.isEqual(Vt.INSTANCE)){if(t!==rn.EQUAL)throw new gt(ht.INVALID_ARGUMENT,"Invalid query. You can only perform equals comparisons on null.");return new sn(e)}if(n.isEqual(zt.NAN)){if(t!==rn.EQUAL)throw new gt(ht.INVALID_ARGUMENT,"Invalid query. You can only perform equals comparisons on NaN.");return new ln(e)}return new an(e,t,n)}function Y(e){return e===ht.OK?d("Treated status OK as error"):e===ht.CANCELLED||e===ht.UNKNOWN||e===ht.DEADLINE_EXCEEDED||e===ht.RESOURCE_EXHAUSTED||e===ht.INTERNAL||e===ht.UNAVAILABLE||e===ht.UNAUTHENTICATED?!1:e===ht.INVALID_ARGUMENT||e===ht.NOT_FOUND||e===ht.ALREADY_EXISTS||e===ht.PERMISSION_DENIED||e===ht.FAILED_PRECONDITION||e===ht.ABORTED||e===ht.OUT_OF_RANGE||e===ht.UNIMPLEMENTED||e===ht.DATA_LOSS||d("Unknown status code: "+e)}function Z(e){var t=In[e];return void 0===t?void 0:ee(t)}function ee(e){return void 0===e?(s("GRPC error has no .code"),ht.UNKNOWN):e===In.OK?ht.OK:e===In.CANCELLED?ht.CANCELLED:e===In.UNKNOWN?ht.UNKNOWN:e===In.DEADLINE_EXCEEDED?ht.DEADLINE_EXCEEDED:e===In.RESOURCE_EXHAUSTED?ht.RESOURCE_EXHAUSTED:e===In.INTERNAL?ht.INTERNAL:e===In.UNAVAILABLE?ht.UNAVAILABLE:e===In.UNAUTHENTICATED?ht.UNAUTHENTICATED:e===In.INVALID_ARGUMENT?ht.INVALID_ARGUMENT:e===In.NOT_FOUND?ht.NOT_FOUND:e===In.ALREADY_EXISTS?ht.ALREADY_EXISTS:e===In.PERMISSION_DENIED?ht.PERMISSION_DENIED:e===In.FAILED_PRECONDITION?ht.FAILED_PRECONDITION:e===In.ABORTED?ht.ABORTED:e===In.OUT_OF_RANGE?ht.OUT_OF_RANGE:e===In.UNIMPLEMENTED?ht.UNIMPLEMENTED:e===In.DATA_LOSS?ht.DATA_LOSS:d("Unknown status code: "+e)}function te(e){return void 0===e?In.OK:e===ht.OK?In.OK:e===ht.CANCELLED?In.CANCELLED:e===ht.UNKNOWN?In.UNKNOWN:e===ht.DEADLINE_EXCEEDED?In.DEADLINE_EXCEEDED:e===ht.RESOURCE_EXHAUSTED?In.RESOURCE_EXHAUSTED:e===ht.INTERNAL?In.INTERNAL:e===ht.UNAVAILABLE?In.UNAVAILABLE:e===ht.UNAUTHENTICATED?In.UNAUTHENTICATED:e===ht.INVALID_ARGUMENT?In.INVALID_ARGUMENT:e===ht.NOT_FOUND?In.NOT_FOUND:e===ht.ALREADY_EXISTS?In.ALREADY_EXISTS:e===ht.PERMISSION_DENIED?In.PERMISSION_DENIED:e===ht.FAILED_PRECONDITION?In.FAILED_PRECONDITION:e===ht.ABORTED?In.ABORTED:e===ht.OUT_OF_RANGE?In.OUT_OF_RANGE:e===ht.UNIMPLEMENTED?In.UNIMPLEMENTED:e===ht.DATA_LOSS?In.DATA_LOSS:d("Unknown status code: "+e)}function ne(e){return 200===e?ht.OK:400===e?ht.INVALID_ARGUMENT:401===e?ht.UNAUTHENTICATED:403===e?ht.PERMISSION_DENIED:404===e?ht.NOT_FOUND:409===e?ht.ABORTED:416===e?ht.OUT_OF_RANGE:429===e?ht.RESOURCE_EXHAUSTED:499===e?ht.CANCELLED:500===e?ht.UNKNOWN:501===e?ht.UNIMPLEMENTED:503===e?ht.UNAVAILABLE:504===e?ht.DEADLINE_EXCEEDED:200<=e&&300>e?ht.OK:400<=e&&500>e?ht.FAILED_PRECONDITION:500<=e&&600>e?ht.INTERNAL:ht.UNKNOWN}function oe(){return Ln}function re(){return _n}function ae(){return On}function ie(){return Mn}function se(e,t){0i||i>t-2)&&d("Invalid encoded resource path: \""+e+"\"");var s=e.charAt(i+1);switch(s){case Vo:var l=e.substring(r,i),p=void 0;0===o.length?p=l:(o+=l,p=o,o=""),n.push(p);break;case qo:o+=e.substring(r,i),o+="\0";break;case jo:o+=e.substring(r,i+1);break;default:d("Invalid encoded resource path: \""+e+"\"");}r=i+2}return new Et(n)}function be(e,t,n,o){c(n=o,"Unexpected schema upgrade from v${fromVersion} to v{toVersion}."),1>n&&1<=o&&(xe(e),ve(e),Se(e),ke(e));var r=So.resolve();return 2>n&&2<=o&&(r=we(t).next(function(e){return Ce(t,e)})),r}function xe(e){e.createObjectStore(Ho.store)}function ve(e){e.createObjectStore(Ko.store,{keyPath:Ko.keyPath}),e.createObjectStore(Go.store,{keyPath:Go.keyPath}),e.createObjectStore(Xo.store)}function ke(e){e.createObjectStore(Jo.store)}function Se(e){var t=e.createObjectStore(Yo.store,{keyPath:Yo.keyPath});t.createIndex(Yo.documentTargetsIndex,Yo.documentTargetsKeyPath,{unique:!0});var n=e.createObjectStore($o.store,{keyPath:$o.keyPath});n.createIndex($o.queryTargetsIndexName,$o.queryTargetsKeyPath,{unique:!0}),e.createObjectStore(Zo.store)}function Ce(e,t){var n=e.store(Zo.store),o=e.store($o.store);return o.count().next(function(e){return t.targetCount=e,n.put(Zo.key,t)})}function we(e){var t=e.store(Zo.store);return t.get(Zo.key).next(function(e){return null==e?(e=new Zo(0,0,hn.MIN.toTimestamp(),0),t.put(Zo.key,e).next(function(){return e})):So.resolve(e)})}function Te(e){return new So(function(t,n){e.onsuccess=function(e){var n=e.target.result;t(n)},e.onerror=function(e){n(e.target.error)}})}function Ee(e){return e instanceof Uint8Array?(c("YES"===process.env.USE_MOCK_PERSISTENCE,"Persisting non-string stream tokens is only supported with mock persistence ."),e.toString()):e}function Ae(e){return Le(e,Go.store)}function Ie(e){return Le(e,Xo.store)}function Ne(e){return Le(e,Ko.store)}function Le(e,t){return e instanceof ar?e.store(t):d("Invalid transaction object provided!")}function _e(e){return De(e,$o.store)}function Oe(e){return De(e,Zo.store)}function Me(e){return De(e,Yo.store)}function De(e,t){return e instanceof ar?e.store(t):d("Invalid transaction object provided!")}function Re(e){return e instanceof ar?e.store(Jo.store):d("Invalid transaction object provided!")}function Pe(e){return e.path.toArray()}function Fe(e){return void 0!==e.documents}function Be(e){if(!e)return new jr;switch(e.type){case"gapi":return new Hr(e.client,e.sessionIndex||"0");case"provider":return e.client;default:throw new gt(ht.INVALID_ARGUMENT,"makeCredentialsProvider failed due to invalid credential type");}}function Ue(e){return Ve(e,["next","error","complete"])}function Ve(e,t){if("object"!=typeof e||null===e)return!1;for(var n=e,o=0,r=t,i;on.query.docComparator(r,t.doc),"Got added events in wrong order"),r=t.doc,{type:"added",doc:i,oldIndex:-1,newIndex:o++}})}var i=n.oldDocs;return n.docChanges.filter(function(e){return t||e.type!==mo.Metadata}).map(function(t){var o=new ha(e,t.doc.key,t.doc,n.fromCache),r=-1,s=-1;return t.type!==mo.Added&&(r=i.indexOf(t.doc.key),c(0<=r,"Index for document not found"),i=i.delete(t.doc.key)),t.type!==mo.Removed&&(i=i.add(t.doc),s=i.indexOf(t.doc.key)),{type:Ye(t.type),doc:o,oldIndex:r,newIndex:s}})}function Ye(e){return e===mo.Added?"added":e===mo.Modified||e===mo.Metadata?"modified":e===mo.Removed?"removed":d("Unknown change type: "+e)}function Ze(e){e.INTERNAL.registerService("firestore",function(e){return new la(e)},b(Ia))}function et(e){Ze(e)}var tt=Number.POSITIVE_INFINITY,nt=Math.floor,ot=Math.min,rt=Math.max,at=String.fromCharCode;Object.defineProperty(t,"__esModule",{value:!0});var it=function(e){return e&&"object"==typeof e&&"default"in e?e["default"]:e}(n("dP58")),st=n("TUpU"),lt=n("vCxL"),dt=n("IIoC"),ct=it.SDK_VERSION,pt=new st.Logger("@firebase/firestore"),ut;(function(e){e[e.DEBUG=0]="DEBUG",e[e.ERROR=1]="ERROR",e[e.SILENT=2]="SILENT"})(ut||(ut={}));var mt=function(){function e(){}return e.setPlatform=function(t){e.platform&&d("Platform already defined"),e.platform=t},e.getPlatform=function(){return e.platform||d("Platform not set"),e.platform},e}(),ht={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"},gt=function(e){function t(t,n){var o=e.call(this,n)||this;return o.code=t,o.message=n,o.name="FirebaseError",o.toString=function(){return o.name+": [code="+o.code+"]: "+o.message},o}return lt.__extends(t,e),t}(Error),ft=function(){function e(){}return e.newId=function(){for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t="",n=0;20>n;n++)t+=e.charAt(nt(Math.random()*e.length));return c(20===t.length,"Invalid auto ID: "+t),t},e}(),yt=function(){function e(e){K(),this._binaryString=e}return e.fromBase64String=function(t){x("Blob.fromBase64String",arguments,1),C("Blob.fromBase64String","string",1,t),K();try{var n=mt.getPlatform().atob(t);return new e(n)}catch(t){throw new gt(ht.INVALID_ARGUMENT,"Failed to construct Blob from Base64 string: "+t)}},e.fromUint8Array=function(t){if(x("Blob.fromUint8Array",arguments,1),H(),!(t instanceof Uint8Array))throw F("Blob.fromUint8Array","Uint8Array",1,t);var n=Array.prototype.map.call(t,function(e){return at(e)}).join("");return new e(n)},e.prototype.toBase64=function(){return x("Blob.toBase64",arguments,0),K(),mt.getPlatform().btoa(this._binaryString)},e.prototype.toUint8Array=function(){x("Blob.toUint8Array",arguments,0),H();for(var e=new Uint8Array(this._binaryString.length),t=0;te||90t||180t)throw new gt(ht.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new gt(ht.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(-62135596800>e)throw new gt(ht.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new gt(ht.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}return e.now=function(){return e.fromMillis(Date.now())},e.fromDate=function(t){return e.fromMillis(t.getTime())},e.fromMillis=function(t){var n=nt(t/1e3);return new e(n,1e6*(t-1e3*n))},e.prototype.toDate=function(){return new Date(this.toMillis())},e.prototype.toMillis=function(){return 1e3*this.seconds+this.nanoseconds/1e6},e.prototype._compareTo=function(e){return this.seconds===e.seconds?V(this.nanoseconds,e.nanoseconds):V(this.seconds,e.seconds)},e.prototype.isEqual=function(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds},e.prototype.toString=function(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"},e}(),kt=function(){return function(e,t,n,o){this.databaseId=e,this.persistenceKey=t,this.host=n,this.ssl=o}}(),St="(default)",Ct=function(){function e(e,t){this.projectId=e,this.database=t?t:St}return Object.defineProperty(e.prototype,"isDefaultDatabase",{get:function(){return this.database===St},enumerable:!0,configurable:!0}),e.prototype.isEqual=function(t){return t instanceof e&&t.projectId===this.projectId&&t.database===this.database},e.prototype.compareTo=function(e){return V(this.projectId,e.projectId)||V(this.database,e.database)},e}(),wt="__name__",Tt=function(){function e(e,t,n){this.init(e,t,n)}return e.prototype.init=function(e,t,n){void 0===t?t=0:t>e.length&&d("offset "+t+" out of range "+e.length),void 0===n?n=e.length-t:n>e.length-t&&d("length "+n+" out of range "+(e.length-t)),this.segments=e,this.offset=t,this.len=n},e.prototype.construct=function(e,t,n){var o=Object.create(Object.getPrototypeOf(this));return o.init(e,t,n),o},Object.defineProperty(e.prototype,"length",{get:function(){return this.len},enumerable:!0,configurable:!0}),e.prototype.isEqual=function(t){return 0===e.comparator(this,t)},e.prototype.child=function(t){var n=this.segments.slice(this.offset,this.limit());return t instanceof e?t.forEach(function(e){n.push(e)}):"string"==typeof t?n.push(t):d("Unknown parameter type for Path.child(): "+t),this.construct(n)},e.prototype.limit=function(){return this.offset+this.length},e.prototype.popFirst=function(e){return e=void 0===e?1:e,c(this.length>=e,"Can't call popFirst() with less segments"),this.construct(this.segments,this.offset+e,this.length-e)},e.prototype.popLast=function(){return c(!this.isEmpty(),"Can't call popLast() on empty path"),this.construct(this.segments,this.offset,this.length-1)},e.prototype.firstSegment=function(){return c(!this.isEmpty(),"Can't call firstSegment() on empty path"),this.segments[this.offset]},e.prototype.lastSegment=function(){return c(!this.isEmpty(),"Can't call lastSegment() on empty path"),this.segments[this.limit()-1]},e.prototype.get=function(e){return c(ei)return 1}return e.lengtht.length?1:0},e}(),Et=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return lt.__extends(t,e),t.prototype.canonicalString=function(){return this.toArray().join("/")},t.prototype.toString=function(){return this.canonicalString()},t.fromString=function(e){if(0<=e.indexOf("//"))throw new gt(ht.INVALID_ARGUMENT,"Invalid path ("+e+"). Paths must not contain // in them.");var n=e.split("/").filter(function(e){return 0n?t=t.left:0o?n=n.left:(t+=n.left.size+1,n=n.right)}return-1},e.prototype.isEmpty=function(){return this.root.isEmpty()},Object.defineProperty(e.prototype,"size",{get:function(){return this.root.size},enumerable:!0,configurable:!0}),e.prototype.minKey=function(){return this.root.minKey()},e.prototype.maxKey=function(){return this.root.maxKey()},e.prototype.inorderTraversal=function(e){return this.root.inorderTraversal(e)},e.prototype.forEach=function(e){this.inorderTraversal(function(t,n){return e(t,n),!1})},e.prototype.reverseTraversal=function(e){return this.root.reverseTraversal(e)},e.prototype.getIterator=function(){return new Mt(this.root,null,this.comparator,!1)},e.prototype.getIteratorFrom=function(e){return new Mt(this.root,e,this.comparator,!1)},e.prototype.getReverseIterator=function(){return new Mt(this.root,null,this.comparator,!0)},e.prototype.getReverseIteratorFrom=function(e){return new Mt(this.root,e,this.comparator,!0)},e}(),Mt=function(){function e(e,t,n,o){this.isReverse=o,this.nodeStack=[];for(var r=1;!e.isEmpty();)if(r=t?n(e.key,t):1,o&&(r*=-1),0>r)e=this.isReverse?e.left:e.right;else if(0===r){this.nodeStack.push(e);break}else this.nodeStack.push(e),e=this.isReverse?e.right:e.left}return e.prototype.getNext=function(){c(0n?r.copy(null,null,null,r.left.insert(e,t,o),null):0===n?r.copy(null,t,null,null,null):r.copy(null,null,null,null,r.right.insert(e,t,o)),r.fixUp()},e.prototype.removeMin=function(){if(this.left.isEmpty())return e.EMPTY;var t=this;return t.left.isRed()||t.left.left.isRed()||(t=t.moveRedLeft()),t=t.copy(null,null,null,t.left.removeMin(),null),t.fixUp()},e.prototype.remove=function(t,o){var r=this,n;if(0>o(t,r.key))r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(t,o),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===o(t,r.key)){if(r.right.isEmpty())return e.EMPTY;n=r.right.min(),r=r.copy(n.key,n.value,null,null,r.right.removeMin())}r=r.copy(null,null,null,null,r.right.remove(t,o))}return r.fixUp()},e.prototype.isRed=function(){return this.color},e.prototype.fixUp=function(){var e=this;return e.right.isRed()&&!e.left.isRed()&&(e=e.rotateLeft()),e.left.isRed()&&e.left.left.isRed()&&(e=e.rotateRight()),e.left.isRed()&&e.right.isRed()&&(e=e.colorFlip()),e},e.prototype.moveRedLeft=function(){var e=this.colorFlip();return e.right.left.isRed()&&(e=e.copy(null,null,null,null,e.right.rotateRight()),e=e.rotateLeft(),e=e.colorFlip()),e},e.prototype.moveRedRight=function(){var e=this.colorFlip();return e.left.left.isRed()&&(e=e.rotateRight(),e=e.colorFlip()),e},e.prototype.rotateLeft=function(){var t=this.copy(null,null,e.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)},e.prototype.rotateRight=function(){var t=this.copy(null,null,e.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,t)},e.prototype.colorFlip=function(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)},e.prototype.checkMaxDepth=function(){var e=this.check();return!!(Math.pow(2,e)<=this.size+1)},e.prototype.check=function(){if(this.isRed()&&this.left.isRed())throw d("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed())throw d("Right child of ("+this.key+","+this.value+") is red");var e=this.left.check();if(e!==this.right.check())throw d("Black depths differ");else return e+(this.isRed()?0:1)},e.EMPTY=null,e.RED=!0,e.BLACK=!1,e}(),Rt=function(){function e(){this.size=0}return e.prototype.copy=function(){return this},e.prototype.insert=function(e,t){return new Dt(e,t)},e.prototype.remove=function(){return this},e.prototype.isEmpty=function(){return!0},e.prototype.inorderTraversal=function(){return!1},e.prototype.reverseTraversal=function(){return!1},e.prototype.minKey=function(){return null},e.prototype.maxKey=function(){return null},e.prototype.isRed=function(){return!1},e.prototype.checkMaxDepth=function(){return!0},e.prototype.check=function(){return 0},e}();Dt.EMPTY=new Rt;var Pt;(function(e){e[e.NullValue=0]="NullValue",e[e.BooleanValue=1]="BooleanValue",e[e.NumberValue=2]="NumberValue",e[e.TimestampValue=3]="TimestampValue",e[e.StringValue=4]="StringValue",e[e.BlobValue=5]="BlobValue",e[e.RefValue=6]="RefValue",e[e.GeoPointValue=7]="GeoPointValue",e[e.ArrayValue=8]="ArrayValue",e[e.ObjectValue=9]="ObjectValue"})(Pt||(Pt={}));var Ft;(function(e){e[e.Default=0]="Default",e[e.Estimate=1]="Estimate",e[e.Previous=2]="Previous"})(Ft||(Ft={}));var Bt=function(){function e(e,t){this.serverTimestampBehavior=e,this.timestampsInSnapshots=t}return e.fromSnapshotOptions=function(t,n){switch(t.serverTimestamps){case"estimate":return new e(Ft.Estimate,n);case"previous":return new e(Ft.Previous,n);case"none":case void 0:return new e(Ft.Default,n);default:return d("fromSnapshotOptions() called with invalid options.");}},e}(),Ut=function(){function e(){}return e.prototype.toString=function(){var e=this.value();return null===e?"null":e.toString()},e.prototype.defaultCompareTo=function(e){c(this.typeOrder!==e.typeOrder,"Default compareTo should not be used for values of same type.");var t=V(this.typeOrder,e.typeOrder);return t},e}(),Vt=function(e){function t(){var t=e.call(this)||this;return t.typeOrder=Pt.NullValue,t.internalValue=null,t}return lt.__extends(t,e),t.prototype.value=function(){return null},t.prototype.isEqual=function(e){return e instanceof t},t.prototype.compareTo=function(e){return e instanceof t?0:this.defaultCompareTo(e)},t.INSTANCE=new t,t}(Ut),qt=function(e){function t(t){var n=e.call(this)||this;return n.internalValue=t,n.typeOrder=Pt.BooleanValue,n}return lt.__extends(t,e),t.prototype.value=function(){return this.internalValue},t.prototype.isEqual=function(e){return e instanceof t&&this.internalValue===e.internalValue},t.prototype.compareTo=function(e){return e instanceof t?V(this,e):this.defaultCompareTo(e)},t.of=function(e){return e?t.TRUE:t.FALSE},t.TRUE=new t(!0),t.FALSE=new t(!1),t}(Ut),jt=function(e){function t(t){var n=e.call(this)||this;return n.internalValue=t,n.typeOrder=Pt.NumberValue,n}return lt.__extends(t,e),t.prototype.value=function(){return this.internalValue},t.prototype.compareTo=function(e){return e instanceof t?G(this.internalValue,e.internalValue):this.defaultCompareTo(e)},t}(Ut),Wt=function(e){function t(t){return e.call(this,t)||this}return lt.__extends(t,e),t.prototype.isEqual=function(e){return!!(e instanceof t)&&X(this.internalValue,e.internalValue)},t}(jt),zt=function(e){function t(t){var n=e.call(this,t)||this;return n.internalValue=t,n}return lt.__extends(t,e),t.prototype.isEqual=function(e){return!!(e instanceof t)&&X(this.internalValue,e.internalValue)},t.NAN=new t(NaN),t.POSITIVE_INFINITY=new t(Infinity),t.NEGATIVE_INFINITY=new t(-Infinity),t}(jt),Ht=function(e){function t(t){var n=e.call(this)||this;return n.internalValue=t,n.typeOrder=Pt.StringValue,n}return lt.__extends(t,e),t.prototype.value=function(){return this.internalValue},t.prototype.isEqual=function(e){return e instanceof t&&this.internalValue===e.internalValue},t.prototype.compareTo=function(e){return e instanceof t?V(this.internalValue,e.internalValue):this.defaultCompareTo(e)},t}(Ut),Kt=function(e){function t(t){var n=e.call(this)||this;return n.internalValue=t,n.typeOrder=Pt.TimestampValue,n}return lt.__extends(t,e),t.prototype.value=function(e){return e&&e.timestampsInSnapshots?this.internalValue:this.internalValue.toDate()},t.prototype.isEqual=function(e){return e instanceof t&&this.internalValue.isEqual(e.internalValue)},t.prototype.compareTo=function(e){return e instanceof t?this.internalValue._compareTo(e.internalValue):e instanceof Gt?-1:this.defaultCompareTo(e)},t}(Ut),Gt=function(e){function t(t,n){var o=e.call(this)||this;return o.localWriteTime=t,o.previousValue=n,o.typeOrder=Pt.TimestampValue,o}return lt.__extends(t,e),t.prototype.value=function(e){return e&&e.serverTimestampBehavior===Ft.Estimate?new Kt(this.localWriteTime).value(e):e&&e.serverTimestampBehavior===Ft.Previous?this.previousValue?this.previousValue.value(e):null:null},t.prototype.isEqual=function(e){return e instanceof t&&this.localWriteTime.isEqual(e.localWriteTime)},t.prototype.compareTo=function(e){return e instanceof t?this.localWriteTime._compareTo(e.localWriteTime):e instanceof Kt?1:this.defaultCompareTo(e)},t.prototype.toString=function(){return""},t}(Ut),Xt=function(e){function t(t){var n=e.call(this)||this;return n.internalValue=t,n.typeOrder=Pt.BlobValue,n}return lt.__extends(t,e),t.prototype.value=function(){return this.internalValue},t.prototype.isEqual=function(e){return e instanceof t&&this.internalValue.isEqual(e.internalValue)},t.prototype.compareTo=function(e){return e instanceof t?this.internalValue._compareTo(e.internalValue):this.defaultCompareTo(e)},t}(Ut),Qt=function(e){function t(t,n){var o=e.call(this)||this;return o.databaseId=t,o.key=n,o.typeOrder=Pt.RefValue,o}return lt.__extends(t,e),t.prototype.value=function(){return this.key},t.prototype.isEqual=function(e){return!!(e instanceof t)&&this.key.isEqual(e.key)&&this.databaseId.isEqual(e.databaseId)},t.prototype.compareTo=function(e){if(e instanceof t){var n=this.databaseId.compareTo(e.databaseId);return 0===n?Nt.comparator(this.key,e.key):n}return this.defaultCompareTo(e)},t}(Ut),Jt=function(e){function t(t){var n=e.call(this)||this;return n.internalValue=t,n.typeOrder=Pt.GeoPointValue,n}return lt.__extends(t,e),t.prototype.value=function(){return this.internalValue},t.prototype.isEqual=function(e){return e instanceof t&&this.internalValue.isEqual(e.internalValue)},t.prototype.compareTo=function(e){return e instanceof t?this.internalValue._compareTo(e.internalValue):this.defaultCompareTo(e)},t}(Ut),$t=function(e){function t(t){var n=e.call(this)||this;return n.internalValue=t,n.typeOrder=Pt.ObjectValue,n}return lt.__extends(t,e),t.prototype.value=function(e){var t={};return this.internalValue.inorderTraversal(function(n,o){t[n]=o.value(e)}),t},t.prototype.forEach=function(e){this.internalValue.inorderTraversal(e)},t.prototype.isEqual=function(e){if(e instanceof t){for(var n=this.internalValue.getIterator(),o=e.internalValue.getIterator();n.hasNext()&&o.hasNext();){var r=n.getNext(),i=o.getNext();if(r.key!==i.key||!r.value.isEqual(i.value))return!1}return!n.hasNext()&&!o.hasNext()}return!1},t.prototype.compareTo=function(e){if(e instanceof t){for(var n=this.internalValue.getIterator(),o=e.internalValue.getIterator();n.hasNext()&&o.hasNext();){var r=n.getNext(),i=o.getNext(),s=V(r.key,i.key)||r.value.compareTo(i.value);if(s)return s}return V(n.hasNext(),o.hasNext())}return this.defaultCompareTo(e)},t.prototype.set=function(e,n){if(c(!e.isEmpty(),"Cannot set field for empty path on ObjectValue"),1===e.length)return this.setChild(e.firstSegment(),n);var o=this.child(e.firstSegment());o instanceof t||(o=t.EMPTY);var r=o.set(e.popFirst(),n);return this.setChild(e.firstSegment(),r)},t.prototype.delete=function(e){if(c(!e.isEmpty(),"Cannot delete field for empty path on ObjectValue"),1===e.length)return new t(this.internalValue.remove(e.firstSegment()));var n=this.child(e.firstSegment());if(n instanceof t){var o=n.delete(e.popFirst());return new t(this.internalValue.insert(e.firstSegment(),o))}return this},t.prototype.contains=function(e){return void 0!==this.field(e)},t.prototype.field=function(e){c(!e.isEmpty(),"Can't get field of empty path");var n=this;return e.forEach(function(e){n=n instanceof t?n.internalValue.get(e)||void 0:void 0}),n},t.prototype.toString=function(){return JSON.stringify(this.value())},t.prototype.child=function(e){return this.internalValue.get(e)||void 0},t.prototype.setChild=function(e,n){return new t(this.internalValue.insert(e,n))},t.EMPTY=new t(new Ot(V)),t}(Ut),Yt=function(e){function t(t){var n=e.call(this)||this;return n.internalValue=t,n.typeOrder=Pt.ArrayValue,n}return lt.__extends(t,e),t.prototype.value=function(e){return this.internalValue.map(function(t){return t.value(e)})},t.prototype.forEach=function(e){this.internalValue.forEach(e)},t.prototype.isEqual=function(e){if(e instanceof t){if(this.internalValue.length!==e.internalValue.length)return!1;for(var n=0;n="===t?e.GREATER_THAN_OR_EQUAL:">"===t?e.GREATER_THAN:"array-contains"===t?e.ARRAY_CONTAINS:d("Unknown relation: "+t)},e.prototype.toString=function(){return this.name},e.prototype.isEqual=function(e){return this.name===e.name},e.LESS_THAN=new e("<"),e.LESS_THAN_OR_EQUAL=new e("<="),e.EQUAL=new e("=="),e.GREATER_THAN=new e(">"),e.GREATER_THAN_OR_EQUAL=new e(">="),e.ARRAY_CONTAINS=new e("array-contains"),e}(),an=function(){function e(e,t,n){this.field=e,this.op=t,this.value=n}return e.prototype.matches=function(e){if(this.field.isKeyField()){c(this.value instanceof Qt,"Comparing on key, but filter value not a RefValue"),c(this.op!==rn.ARRAY_CONTAINS,"array-contains queries don't make sense on document keys.");var t=this.value,n=Nt.comparator(e.key,t.key);return this.matchesComparison(n)}var o=e.field(this.field);return void 0!==o&&this.matchesValue(o)},e.prototype.matchesValue=function(e){var t=this;return this.op===rn.ARRAY_CONTAINS?e instanceof Yt&&void 0!==e.internalValue.find(function(e){return e.isEqual(t.value)}):this.value.typeOrder===e.typeOrder&&this.matchesComparison(e.compareTo(this.value))},e.prototype.matchesComparison=function(e){switch(this.op){case rn.LESS_THAN:return 0>e;case rn.LESS_THAN_OR_EQUAL:return 0>=e;case rn.EQUAL:return 0===e;case rn.GREATER_THAN:return 0=n:0>n},e.prototype.isEqual=function(e){if(null===e)return!1;if(this.before!==e.before||this.position.length!==e.position.length)return!1;for(var t=0;t":o.toString()}),r=this.serviceName+": "+r+" ("+o+").";var i=new eo(o,r);for(var s in t)t.hasOwnProperty(s)&&"_"!==s.slice(-1)&&(i[s]=t[s]);return i},e}(),no=function(){return function(){this.blockSize=-1}}(),oo=function(e){function t(){var t=e.call(this)||this;t.chain_=[],t.buf_=[],t.W_=[],t.pad_=[],t.inbuf_=0,t.total_=0,t.blockSize=64,t.pad_[0]=128;for(var n=1;ns;s++)r[s]=n.charCodeAt(o)<<24|n.charCodeAt(o+1)<<16|n.charCodeAt(o+2)<<8|n.charCodeAt(o+3),o+=4;else for(var s=0;16>s;s++)r[s]=n[o]<<24|n[o+1]<<16|n[o+2]<<8|n[o+3],o+=4;for(var s=16,i;80>s;s++)i=r[s-3]^r[s-8]^r[s-14]^r[s-16],r[s]=4294967295&(i<<1|i>>>31);for(var t=this.chain_[0],l=this.chain_[1],p=this.chain_[2],c=this.chain_[3],d=this.chain_[4],s=0,e,u;80>s;s++){40>s?20>s?(e=c^l&(p^c),u=1518500249):(e=l^p^c,u=1859775393):60>s?(e=l&p|c&(l|p),u=2400959708):(e=l^p^c,u=3395469782);var i=4294967295&(t<<5|t>>>27)+e+d+u+r[s];d=c,c=p,p=4294967295&(l<<30|l>>>2),l=t,t=i}this.chain_[0]=4294967295&this.chain_[0]+t,this.chain_[1]=4294967295&this.chain_[1]+l,this.chain_[2]=4294967295&this.chain_[2]+p,this.chain_[3]=4294967295&this.chain_[3]+c,this.chain_[4]=4294967295&this.chain_[4]+d},t.prototype.update=function(e,t){if(null!=e){void 0===t&&(t=e.length);for(var o=t-this.blockSize,r=0,n=this.buf_,i=this.inbuf_;rthis.inbuf_?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(var o=this.blockSize-1;56<=o;o--)this.buf_[o]=255&t,t/=256;this.compress_(this.buf_);for(var r=0,o=0;5>o;o++)for(var n=24;0<=n;n-=8)e[r]=255&this.chain_[o]>>n,++r;return e},t}(no),ro=function(){function e(e){this.sendFn=e.sendFn,this.closeFn=e.closeFn}return e.prototype.onOpen=function(e){c(!this.wrappedOnOpen,"Called onOpen on stream twice!"),this.wrappedOnOpen=e},e.prototype.onClose=function(e){c(!this.wrappedOnClose,"Called onClose on stream twice!"),this.wrappedOnClose=e},e.prototype.onMessage=function(e){c(!this.wrappedOnMessage,"Called onMessage on stream twice!"),this.wrappedOnMessage=e},e.prototype.close=function(){this.closeFn()},e.prototype.send=function(e){this.sendFn(e)},e.prototype.callOnOpen=function(){c(void 0!==this.wrappedOnOpen,"Cannot call onOpen because no callback was set"),this.wrappedOnOpen()},e.prototype.callOnClose=function(e){c(void 0!==this.wrappedOnClose,"Cannot call onClose because no callback was set"),this.wrappedOnClose(e)},e.prototype.callOnMessage=function(e){c(void 0!==this.wrappedOnMessage,"Cannot call onMessage because no callback was set"),this.wrappedOnMessage(e)},e}(),ao="Connection",io={BatchGetDocuments:"batchGet",Commit:"commit"},so=function(){function e(e){this.databaseId=e.databaseId,this.pool=new dt.XhrIoPool;var t=e.ssl?"https":"http";this.baseUrl=t+"://"+e.host}return e.prototype.modifyHeadersForRequest=function(e,t){if(t)for(var n in t.authHeaders)t.authHeaders.hasOwnProperty(n)&&(e[n]=t.authHeaders[n]);e["X-Goog-Api-Client"]="gl-js/ fire/"+ct},e.prototype.invokeRPC=function(e,t,n){var o=this,r=this.makeUrl(e);return new Promise(function(s,l){o.pool.getObject(function(c){c.listenOnce(dt.EventType.COMPLETE,function(){try{switch(c.getLastErrorCode()){case dt.ErrorCode.NO_ERROR:var t=c.getResponseJson();i(ao,"XHR received:",JSON.stringify(t)),s(t);break;case dt.ErrorCode.TIMEOUT:i(ao,"RPC \""+e+"\" timed out"),l(new gt(ht.DEADLINE_EXCEEDED,"Request time out"));break;case dt.ErrorCode.HTTP_ERROR:var n=c.getStatus();i(ao,"RPC \""+e+"\" failed with status:",n,"response text:",c.getResponseText()),0>Ao<=e?n|this.generatorId:(n|this.generatorId)-(1<",e),n=this.store.put(e)):(i(nr,"PUT",this.store.name,e,t),n=this.store.put(t,e)),Te(n)},e.prototype.get=function(e){var t=this,n=this.store.get(e);return Te(n).next(function(n){return void 0===n&&(n=null),i(nr,"GET",t.store.name,e,n),n})},e.prototype.delete=function(e){i(nr,"DELETE",this.store.name,e);var t=this.store.delete(e);return Te(t)},e.prototype.count=function(){i(nr,"COUNT",this.store.name);var e=this.store.count();return Te(e)},e.prototype.loadAll=function(e,t){var n=this.cursor(this.options(e,t)),o=[];return this.iterateCursor(n,function(e,t){o.push(t)}).next(function(){return o})},e.prototype.deleteAll=function(e,t){i(nr,"DELETE ALL",this.store.name);var n=this.options(e,t);n.keysOnly=!1;var o=this.cursor(n);return this.iterateCursor(o,function(e,t,n){return n.delete()})},e.prototype.iterate=function(e,t){var n;t?n=e:(n={},t=e);var o=this.cursor(n);return this.iterateCursor(o,t)},e.prototype.iterateCursor=function(e,t){var n=[];return new So(function(o,r){e.onerror=function(e){r(e.target.error)},e.onsuccess=function(e){var r=e.target.result;if(!r)return void o();var i=new rr(r),s=t(r.primaryKey,r.value,i);s instanceof So&&n.push(s),i.isDone?o():null===i.skipToKey?r.continue():r.continue(i.skipToKey)}}).next(function(){return So.waitFor(n)})},e.prototype.options=function(e,t){var n;return void 0!==e&&("string"==typeof e?n=e:(c(void 0===t,"3rd argument must not be defined if 2nd is a range."),t=e)),{index:n,range:t}},e.prototype.cursor=function(e){var t="next";if(e.reverse&&(t="prev"),e.index){var n=this.store.index(e.index);return e.keysOnly?n.openKeyCursor(e.range,t):n.openCursor(e.range,t)}return this.store.openCursor(e.range,t)},e}(),sr=function(){function e(e,t){this.userId=e,this.serializer=t,this.garbageCollector=null}return e.forUser=function(t,n){c(""!==t.uid,"UserID must not be an empty string.");var o=t.isAuthenticated()?t.uid:"";return new e(o,n)},e.prototype.start=function(t){var n=this;return e.loadNextBatchIdFromDb(t).next(function(e){return n.nextBatchId=e,Ne(t).get(n.userId)}).next(function(e){return e||(e=new Ko(n.userId,Po,"")),n.metadata=e,n.metadata.lastAcknowledgedBatchId>=n.nextBatchId?n.checkEmpty(t).next(function(e){return c(e,"Reset nextBatchID is only possible when the queue is empty"),n.metadata.lastAcknowledgedBatchId=Po,Ne(t).put(n.metadata)}):So.resolve()})},e.loadNextBatchIdFromDb=function(e){var t=Po;return Ae(e).iterate({reverse:!0},function(e,n,o){var r=e[0],i=e[1];if(i>t&&(t=n.batchId),""===r)o.done();else{var s=W(r);o.skip([s])}}).next(function(){return t+1})},e.prototype.checkEmpty=function(e){var t=!0,n=IDBKeyRange.bound(this.keyForBatchId(Number.NEGATIVE_INFINITY),this.keyForBatchId(Number.POSITIVE_INFINITY));return Ae(e).iterate({range:n},function(e,n,o){t=!1,o.done()}).next(function(){return t})},e.prototype.getNextBatchId=function(){return So.resolve(this.nextBatchId)},e.prototype.getHighestAcknowledgedBatchId=function(){return So.resolve(this.metadata.lastAcknowledgedBatchId)},e.prototype.acknowledgeBatch=function(e,t,n){var o=t.batchId;return c(o>this.metadata.lastAcknowledgedBatchId,"Mutation batchIDs must be acknowledged in order"),this.metadata.lastAcknowledgedBatchId=o,this.metadata.lastStreamToken=Ee(n),Ne(e).put(this.metadata)},e.prototype.getLastStreamToken=function(){return So.resolve(this.metadata.lastStreamToken)},e.prototype.setLastStreamToken=function(e,t){return this.metadata.lastStreamToken=Ee(t),Ne(e).put(this.metadata)},e.prototype.addMutationBatch=function(e,t,n){var o=this,r=this.nextBatchId;this.nextBatchId++;var i=new Fo(r,t,n),s=this.serializer.toDbMutationBatch(this.userId,i);return Ae(e).put(s).next(function(){for(var t=[],i=0,s=n;i=o,"Should have found mutation after "+o),i=n.serializer.fromDbMutationBatch(t)),r.done()}).next(function(){return i})},e.prototype.getAllMutationBatches=function(e){var t=this,n=IDBKeyRange.bound(this.keyForBatchId(Po),this.keyForBatchId(Number.POSITIVE_INFINITY));return Ae(e).loadAll(n).next(function(e){return e.map(function(e){return t.serializer.fromDbMutationBatch(e)})})},e.prototype.getAllMutationBatchesThroughBatchId=function(e,t){var n=this,o=IDBKeyRange.bound(this.keyForBatchId(Po),this.keyForBatchId(t));return Ae(e).loadAll(o).next(function(e){return e.map(function(e){return n.serializer.fromDbMutationBatch(e)})})},e.prototype.getAllMutationBatchesAffectingDocumentKey=function(e,t){var n=this,o=Xo.prefixForPath(this.userId,t.path),r=IDBKeyRange.lowerBound(o),i=[];return Ie(e).iterate({range:r},function(o,r,s){var l=o[0],c=o[1],p=o[2],u=ye(c);if(l!==n.userId||!t.path.isEqual(u))return void s.done();var m=n.keyForBatchId(p);return Ae(e).get(m).next(function(e){null===e&&d("Dangling document-mutation reference found: "+o+" which points to "+m),i.push(n.serializer.fromDbMutationBatch(e))})}).next(function(){return i})},e.prototype.getAllMutationBatchesAffectingQuery=function(e,t){var n=this;c(!t.isDocumentQuery(),"Document queries shouldn't go down this path");var o=t.path,r=o.length+1,i=Xo.prefixForPath(this.userId,o),s=IDBKeyRange.lowerBound(i),l=new Nn(V);return Ie(e).iterate({range:s},function(e,t,i){var s=e[0],d=e[1],c=e[2],p=ye(d);return s===n.userId&&o.isPrefixOf(p)?void(p.length!==r||(l=l.add(c))):void i.done()}).next(function(){var t=[],o=[];return l.forEach(function(r){var i=n.keyForBatchId(r);o.push(Ae(e).get(i).next(function(e){null===e&&d("Dangling document-mutation reference found, which points to "+i),t.push(n.serializer.fromDbMutationBatch(e))}))}),So.waitFor(o).next(function(){return t})})},e.prototype.removeMutationBatches=function(e,t){for(var n=Ae(e),o=Ie(e),r=[],i=function(e){var t=IDBKeyRange.only(s.keyForBatchId(e.batchId)),i=0,l=n.iterate({range:t},function(e,t,n){return i++,n.delete()});r.push(l.next(function(){c(1==i,"Dangling document-mutation reference found: Missing batch "+e.batchId)}));for(var d=0,p=e.mutations;dthis.metadata.highestTargetId&&(this.metadata.highestTargetId=e.targetId,t=!0),t},Object.defineProperty(e.prototype,"count",{get:function(){return this.metadata.targetCount},enumerable:!0,configurable:!0}),e.prototype.getQueryData=function(e,t){var n=this,o=t.canonicalId(),r=IDBKeyRange.bound([o,Number.NEGATIVE_INFINITY],[o,tt]),i=null;return _e(e).iterate({range:r,index:$o.queryTargetsIndexName},function(e,o,r){var s=n.serializer.fromDbTarget(o);t.isEqual(s.query)&&(i=s,r.done())}).next(function(){return i})},e.prototype.addMatchingKeys=function(e,t,n){var o=[],r=Me(e);return t.forEach(function(e){var t=he(e.path);o.push(r.put(new Yo(n,t)))}),So.waitFor(o)},e.prototype.removeMatchingKeys=function(e,t,n){var o=this,r=[],i=Me(e);return t.forEach(function(e){var t=he(e.path);r.push(i.delete([n,t])),null!==o.garbageCollector&&o.garbageCollector.addPotentialGarbageKey(e)}),So.waitFor(r)},e.prototype.removeMatchingKeysForTargetId=function(e,t){var n=Me(e),o=IDBKeyRange.bound([t],[t+1],!1,!0);return this.notifyGCForRemovedKeys(e,o).next(function(){return n.delete(o)})},e.prototype.notifyGCForRemovedKeys=function(e,t){var n=this,o=Me(e);return null!==this.garbageCollector&&this.garbageCollector.isEager?o.iterate({range:t,keysOnly:!0},function(e){var t=ye(e[1]),o=new Nt(t);c(null!==n.garbageCollector,"GarbageCollector for query cache set to null during key removal."),n.garbageCollector.addPotentialGarbageKey(o)}):So.resolve()},e.prototype.getMatchingKeysForTargetId=function(e,t){var n=IDBKeyRange.bound([t],[t+1],!1,!0),o=Me(e),r=ie();return o.iterate({range:n,keysOnly:!0},function(e){var t=ye(e[1]),n=new Nt(t);r=r.add(n)}).next(function(){return r})},e.prototype.setGarbageCollector=function(e){this.garbageCollector=e},e.prototype.containsKey=function(e,t){c(null!==e,"Persistence Transaction cannot be null for query cache containsKey");var n=he(t.path),o=IDBKeyRange.bound([n],[z(n)],!1,!0),r=0;return Me(e).iterate({index:Yo.documentTargetsIndex,keysOnly:!0,range:o},function(e,t,n){r++,n.done()}).next(function(){return 0t?(s("Persistence owner-lease is in the future. Discarding.",e),!1):e.ownerId!==this.getZombiedOwnerId())},e.prototype.scheduleOwnerLeaseRefreshes=function(){var e=this;this.ownerLeaseRefreshHandle=setInterval(function(){var t=e.runTransaction("Refresh owner timestamp",function(t){var n=t.store(Ho.store);return n.put("owner",new Ho(e.ownerId,Date.now()))});t.catch(function(t){s(t),e.stopOwnerLeaseRefreshes()})},4e3)},e.prototype.stopOwnerLeaseRefreshes=function(){this.ownerLeaseRefreshHandle&&(clearInterval(this.ownerLeaseRefreshHandle),this.ownerLeaseRefreshHandle=null)},e.prototype.attachWindowUnloadHook=function(){var e=this;"object"==typeof window&&"function"==typeof window.addEventListener&&(this.windowUnloadHandler=function(){e.setZombiedOwnerId(e.ownerId),e.shutdown()},window.addEventListener("unload",this.windowUnloadHandler))},e.prototype.detachWindowUnloadHook=function(){this.windowUnloadHandler&&(c("object"==typeof window&&"function"==typeof window.removeEventListener,"Expected 'window.removeEventListener' to be a function"),window.removeEventListener("unload",this.windowUnloadHandler),this.windowUnloadHandler=null)},e.prototype.getZombiedOwnerId=function(){try{var e=window.localStorage.getItem(this.zombiedOwnerLocalStorageKey());return i(pr,"Zombied ownerID from LocalStorage:",e),e}catch(t){return s("Failed to get zombie owner id.",t),null}},e.prototype.setZombiedOwnerId=function(e){try{null===e?window.localStorage.removeItem(this.zombiedOwnerLocalStorageKey()):window.localStorage.setItem(this.zombiedOwnerLocalStorageKey(),e)}catch(t){s("Failed to set zombie owner id.",t)}},e.prototype.zombiedOwnerLocalStorageKey=function(){return this.localStoragePrefix+"zombiedOwnerId"},e.prototype.generateOwnerId=function(){return ft.newId()},e.MAIN_DATABASE="main",e}(),hr=function(){function e(e,t){this.remoteDocumentCache=e,this.mutationQueue=t}return e.prototype.getDocument=function(e,t){var n=this;return this.remoteDocumentCache.getEntry(e,t).next(function(o){return n.computeLocalDocument(e,t,o)})},e.prototype.getDocuments=function(e,t){var n=this,o=[],r=oe();return t.forEach(function(t){o.push(n.getDocument(e,t).next(function(e){e||(e=new _t(t,hn.forDeletedDoc())),r=r.insert(t,e)}))}),So.waitFor(o).next(function(){return r})},e.prototype.getDocumentsMatchingQuery=function(e,t){return Nt.isDocumentKey(t.path)?this.getDocumentsMatchingDocumentQuery(e,t.path):this.getDocumentsMatchingCollectionQuery(e,t)},e.prototype.getDocumentsMatchingDocumentQuery=function(e,t){return this.getDocument(e,new Nt(t)).next(function(e){var t=re();return e instanceof Lt&&(t=t.insert(e.key,e)),t})},e.prototype.getDocumentsMatchingCollectionQuery=function(e,t){var n=this,o;return this.remoteDocumentCache.getDocumentsMatchingQuery(e,t).next(function(t){return n.computeLocalDocuments(e,t)}).next(function(r){return o=r,n.mutationQueue.getAllMutationBatchesAffectingQuery(e,t)}).next(function(t){for(var r=ie(),i=0,s=t,l;it,"Acknowledged batches can't be rejected."),o})}).next(function(){return t.removeMutationBatch(n,o)}).next(function(e){return r=e,t.mutationQueue.performConsistencyCheck(n)}).next(function(){return t.localDocuments.getDocuments(n,r)})})},e.prototype.getLastStreamToken=function(){var e=this;return this.persistence.runTransaction("Get last stream token",function(t){return e.mutationQueue.getLastStreamToken(t)})},e.prototype.setLastStreamToken=function(e){var t=this;return this.persistence.runTransaction("Set last stream token",function(n){return t.mutationQueue.setLastStreamToken(n,e)})},e.prototype.getLastRemoteSnapshotVersion=function(){return this.queryCache.getLastRemoteSnapshotVersion()},e.prototype.applyRemoteEvent=function(e){var t=this,n=new gr(this.remoteDocuments);return this.persistence.runTransaction("Apply remote event",function(o){var r=[];g(e.targetChanges,function(e,n){var i=t.targetIds[e];if(i){var s=n.mapping;if(s)if(s instanceof Fn)r.push(t.queryCache.removeMatchingKeysForTargetId(o,e).next(function(){return t.queryCache.addMatchingKeys(o,s.documents,e)}));else if(s instanceof Bn)r.push(t.queryCache.removeMatchingKeys(o,s.removedDocuments,e).next(function(){return t.queryCache.addMatchingKeys(o,s.addedDocuments,e)}));else return d("Unknown mapping type: "+JSON.stringify(s));var l=n.resumeToken;0=e.compareTo(t)||y(this.targetIds)},e.prototype.shouldHoldBatchResult=function(e){return!this.isRemoteUpToVersion(e)||0i.version.compareTo(s))&&(i=o.applyToRemoteDocument(r,i,t),i?n.addEntry(i):c(!e,"Mutation batch "+o+" applied to document "+e+" resulted in null"))})}),i},e}(),yr=function(){function e(){this.mutationQueue=[],this.nextBatchId=1,this.highestAcknowledgedBatchId=Po,this.lastStreamToken=p(),this.garbageCollector=null,this.batchesByDocumentKey=new Nn(Eo.compareByKey)}return e.prototype.start=function(){return 0===this.mutationQueue.length&&(this.nextBatchId=1,this.highestAcknowledgedBatchId=Po),c(this.highestAcknowledgedBatchIdthis.highestAcknowledgedBatchId,"Mutation batchIDs must be acknowledged in order");var r=this.indexOfExistingBatchId(o,"acknowledged"),i=this.mutationQueue[r];return c(o===i.batchId,"Queue ordering failure: expected batch "+o+", got batch "+i.batchId),c(!i.isTombstone(),"Can't acknowledge a previously removed batch"),this.highestAcknowledgedBatchId=o,this.lastStreamToken=n,So.resolve()},e.prototype.getLastStreamToken=function(){return So.resolve(this.lastStreamToken)},e.prototype.setLastStreamToken=function(e,t){return this.lastStreamToken=t,So.resolve()},e.prototype.addMutationBatch=function(e,t,n){c(0!==n.length,"Mutation batches should not be empty");var o=this.nextBatchId;if(this.nextBatchId++,0r?0:r,s;io?o=0:o>=n?o=n:o++,So.resolve(this.getAllLiveMutationBatchesBeforeIndex(o))},e.prototype.getAllMutationBatchesAffectingDocumentKey=function(e,t){var n=this,o=new Eo(t,0),r=new Eo(t,tt),i=[];return this.batchesByDocumentKey.forEachInRange([o,r],function(e){c(t.isEqual(e.key),"Should only iterate over a single key's batches");var o=n.findMutationBatch(e.targetOrBatchId);c(null!==o,"Batches in the index must exist in the main table"),i.push(o)}),So.resolve(i)},e.prototype.getAllMutationBatchesAffectingQuery=function(e,t){var n=this,o=t.path,r=o.length+1,i=o;Nt.isDocumentKey(i)||(i=i.child(""));var s=new Eo(new Nt(i),0),l=new Nn(V);this.batchesByDocumentKey.forEachWhile(function(e){var t=e.key.path;return!!o.isPrefixOf(t)&&(t.length===r&&(l=l.add(e.targetOrBatchId)),!0)},s);var d=[];return l.forEach(function(e){var t=n.findMutationBatch(e);null!==t&&d.push(t)}),So.resolve(d)},e.prototype.removeMutationBatches=function(e,t){var n=t.length;c(0t||t>=this.mutationQueue.length)return null;var n=this.mutationQueue[t];return c(n.batchId===e,"If found batch must match"),n.isTombstone()?null:n},e}(),br=function(){function e(){this.queries=new bo(function(e){return e.canonicalId()}),this.lastRemoteSnapshotVersion=hn.MIN,this.highestTargetId=0,this.references=new To,this.targetCount=0}return e.prototype.start=function(){return So.resolve()},e.prototype.getLastRemoteSnapshotVersion=function(){return this.lastRemoteSnapshotVersion},e.prototype.getHighestTargetId=function(){return this.highestTargetId},e.prototype.setLastRemoteSnapshotVersion=function(e,t){return this.lastRemoteSnapshotVersion=t,So.resolve()},e.prototype.saveQueryData=function(e){this.queries.set(e.query,e);var t=e.targetId;t>this.highestTargetId&&(this.highestTargetId=t)},e.prototype.addQueryData=function(e,t){return c(!this.queries.has(t.query),"Adding a query that already exists"),this.saveQueryData(t),this.targetCount+=1,So.resolve()},e.prototype.updateQueryData=function(e,t){return c(this.queries.has(t.query),"Updating a non-existent query"),this.saveQueryData(t),So.resolve()},e.prototype.removeQueryData=function(e,t){return c(0n.indexOf("Firestore Test Simulated Error")&&setTimeout(function(){throw e},0),e}).then(function(e){return t.operationInProgress=!1,e})});return this.tail=n,n},e.prototype.enqueueAfterDelay=function(e,t,n){var o=this;this.verifyNotFailed(),c(!this.containsDelayedOperation(e),"Attempted to schedule multiple operations with timer id "+e+".");var r=wr.createAndSchedule(this,e,t,n,function(e){return o.removeDelayedOperation(e)});return this.delayedOperations.push(r),r},e.prototype.verifyNotFailed=function(){this.failure&&d("AsyncQueue is already failed: "+(this.failure.stack||this.failure.message))},e.prototype.verifyOperationInProgress=function(){c(this.operationInProgress,"verifyOpInProgress() called when no op in progress on this queue.")},e.prototype.drain=function(){return this.enqueue(function(){return Promise.resolve()})},e.prototype.containsDelayedOperation=function(e){return 0<=this.delayedOperations.findIndex(function(t){return t.timerId===e})},e.prototype.runDelayedOperationsEarly=function(e){var t=this;return this.drain().then(function(){c(e===Cr.All||t.containsDelayedOperation(e),"Attempted to drain to missing operation "+e),t.delayedOperations.sort(function(e,t){return e.targetTimeMs-t.targetTimeMs});for(var n=0,o=t.delayedOperations,r;nthis.maxDelayMs&&(this.currentBaseMs=this.maxDelayMs)},e.prototype.cancel=function(){null!==this.timerPromise&&(this.timerPromise.cancel(),this.timerPromise=null)},e.prototype.jitterDelayMs=function(){return(Math.random()-0.5)*this.currentBaseMs},e}(),Ar;(function(e){e[e.Initial=0]="Initial",e[e.Auth=1]="Auth",e[e.Open=2]="Open",e[e.Error=3]="Error",e[e.Backoff=4]="Backoff",e[e.Stopped=5]="Stopped"})(Ar||(Ar={}));var Ir=function(){function e(e,t,n,o,r){this.queue=e,this.idleTimerId=n,this.connection=o,this.credentialsProvider=r,this.inactivityTimerPromise=null,this.stream=null,this.listener=null,this.backoff=new Er(e,t,1e3,1.5,60000),this.state=Ar.Initial}return e.prototype.isStarted=function(){return this.state===Ar.Backoff||this.state===Ar.Auth||this.state===Ar.Open},e.prototype.isOpen=function(){return this.state===Ar.Open},e.prototype.start=function(e){return this.state===Ar.Error?void this.performBackoff(e):void(c(this.state===Ar.Initial,"Already started"),this.listener=e,this.auth())},e.prototype.stop=function(){this.isStarted()&&this.close(Ar.Stopped)},e.prototype.inhibitBackoff=function(){c(!this.isStarted(),"Can only inhibit backoff in a stopped state"),this.state=Ar.Initial,this.backoff.reset()},e.prototype.markIdle=function(){var e=this;this.isOpen()&&null===this.inactivityTimerPromise&&(this.inactivityTimerPromise=this.queue.enqueueAfterDelay(this.idleTimerId,60000,function(){return e.handleIdleCloseTimer()}))},e.prototype.sendRequest=function(e){this.cancelIdleCheck(),this.stream.send(e)},e.prototype.handleIdleCloseTimer=function(){return lt.__awaiter(this,void 0,void 0,function(){return lt.__generator(this,function(){return this.isOpen()?[2,this.close(Ar.Initial)]:[2]})})},e.prototype.cancelIdleCheck=function(){this.inactivityTimerPromise&&(this.inactivityTimerPromise.cancel(),this.inactivityTimerPromise=null)},e.prototype.close=function(e,t){return lt.__awaiter(this,void 0,void 0,function(){var n;return lt.__generator(this,function(){return c(e===Ar.Error||Q(t),"Can't provide an error when not in an error state."),this.cancelIdleCheck(),this.backoff.cancel(),e===Ar.Error?t&&t.code===ht.RESOURCE_EXHAUSTED&&(s(t.toString()),s("Using maximum backoff delay to prevent overloading the backend."),this.backoff.resetToMax()):this.backoff.reset(),null!==this.stream&&(this.tearDown(),this.stream.close(),this.stream=null),this.state=e,n=this.listener,this.listener=null,e===Ar.Stopped?[2]:[2,n.onClose(t)]})})},e.prototype.tearDown=function(){},e.prototype.auth=function(){var e=this;c(this.state===Ar.Initial,"Must be in initial state to auth"),this.state=Ar.Auth,this.credentialsProvider.getToken(!1).then(function(t){e.startStream(t)},function(t){e.queue.enqueue(function(){return lt.__awaiter(e,void 0,void 0,function(){var e;return lt.__generator(this,function(){return this.state===Ar.Stopped?[2]:(e=new gt(ht.UNKNOWN,"Fetching auth token failed: "+t.message),[2,this.handleStreamClose(e)])})})})})},e.prototype.startStream=function(e){var t=this;if(this.state!==Ar.Stopped){c(this.state===Ar.Auth,"Trying to start stream in a non-auth state");var n=function(e,n){t.queue.enqueue(function(){return lt.__awaiter(t,void 0,void 0,function(){return lt.__generator(this,function(){return this.stream===e?[2,n()]:[2]})})})};if(null!==this.listener){var o=this.startRpc(e);this.stream=o,this.stream.onOpen(function(){n(o,function(){return c(t.state===Ar.Auth,"Expected stream to be in state auth, but was "+t.state),t.state=Ar.Open,t.listener.onOpen()})}),this.stream.onClose(function(e){n(o,function(){return t.handleStreamClose(e)})}),this.stream.onMessage(function(e){n(o,function(){return t.onMessage(e)})})}}},e.prototype.performBackoff=function(e){var t=this;c(this.state===Ar.Error,"Should only perform backoff in an error case"),this.state=Ar.Backoff,this.backoff.backoffAndRun(function(){return lt.__awaiter(t,void 0,void 0,function(){return lt.__generator(this,function(){return this.state===Ar.Stopped?[2]:(this.state=Ar.Initial,this.start(e),c(this.isStarted(),"PersistentStream should have started"),[2])})})})},e.prototype.handleStreamClose=function(e){return c(this.isStarted(),"Can't handle server close on non-started stream"),i("PersistentStream","close with error: "+e),this.stream=null,this.close(Ar.Error,e)},e}(),Nr=function(e){function t(t,n,o,r){var i=e.call(this,t,Cr.ListenStreamConnectionBackoff,Cr.ListenStreamIdle,n,o)||this;return i.serializer=r,i}return lt.__extends(t,e),t.prototype.startRpc=function(e){return this.connection.openStream("Listen",e)},t.prototype.onMessage=function(e){this.backoff.reset();var t=this.serializer.fromWatchChange(e),n=this.serializer.versionFromListenResponse(e);return this.listener.onWatchChange(t,n)},t.prototype.watch=function(e){var t={database:this.serializer.encodedDatabaseId,addTarget:this.serializer.toTarget(e)},n=this.serializer.toListenRequestLabels(e);n&&(t.labels=n),this.sendRequest(t)},t.prototype.unwatch=function(e){var t={};t.database=this.serializer.encodedDatabaseId,t.removeTarget=e,this.sendRequest(t)},t}(Ir),Lr=function(e){function t(t,n,o,r){var i=e.call(this,t,Cr.WriteStreamConnectionBackoff,Cr.WriteStreamIdle,n,o)||this;return i.serializer=r,i.handshakeComplete_=!1,i}return lt.__extends(t,e),Object.defineProperty(t.prototype,"handshakeComplete",{get:function(){return this.handshakeComplete_},enumerable:!0,configurable:!0}),t.prototype.start=function(t){this.handshakeComplete_=!1,e.prototype.start.call(this,t)},t.prototype.tearDown=function(){this.handshakeComplete_&&this.writeMutations([])},t.prototype.startRpc=function(e){return this.connection.openStream("Write",e)},t.prototype.onMessage=function(e){if(c(!!e.streamToken,"Got a write response without a stream token"),this.lastStreamToken=e.streamToken,!this.handshakeComplete_)return c(!e.writeResults||0===e.writeResults.length,"Got mutation results for handshake"),this.handshakeComplete_=!0,this.listener.onHandshakeComplete();this.backoff.reset();var t=this.serializer.fromWriteResults(e.writeResults),n=this.serializer.fromVersion(e.commitTime);return this.listener.onMutationResult(n,t)},t.prototype.writeHandshake=function(){c(this.isOpen(),"Writing handshake requires an opened stream"),c(!this.handshakeComplete_,"Handshake already completed");var e={};e.database=this.serializer.encodedDatabaseId,this.sendRequest(e)},t.prototype.writeMutations=function(e){var t=this;c(this.isOpen(),"Writing mutations requires an opened stream"),c(this.handshakeComplete_,"Handshake must be complete before writing mutations"),c(0=Mr&&(this.clearOnlineStateTimer(),this.logClientOfflineWarningIfNecessary("Connection failed "+Mr+" "+("times. Most recent error: "+e.toString())),this.setAndBroadcast(uo.Offline)))},e.prototype.set=function(e){this.clearOnlineStateTimer(),this.watchStreamFailures=0,e===uo.Online&&(this.shouldWarnClientIsOffline=!1),this.setAndBroadcast(e)},e.prototype.setAndBroadcast=function(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))},e.prototype.logClientOfflineWarningIfNecessary=function(e){var t="Could not reach Cloud Firestore backend. "+e+"\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.";this.shouldWarnClientIsOffline?(s(t),this.shouldWarnClientIsOffline=!1):i("OnlineStateTracker",t)},e.prototype.clearOnlineStateTimer=function(){null!==this.onlineStateTimer&&(this.onlineStateTimer.cancel(),this.onlineStateTimer=null)},e}(),Pr="RemoteStore",Fr=function(){function e(e,t,n,o){this.localStore=e,this.datastore=t,this.pendingWrites=[],this.lastBatchSeen=Po,this.listenTargets={},this.pendingTargetResponses={},this.accumulatedWatchChanges=[],this.watchStream=null,this.writeStream=null,this.onlineStateTracker=new Rr(n,o)}return e.prototype.start=function(){return this.enableNetwork()},e.prototype.isNetworkEnabled=function(){return c(null==this.watchStream==(null==this.writeStream),"WatchStream and WriteStream should both be null or non-null"),null!=this.watchStream},e.prototype.enableNetwork=function(){var e=this;return this.isNetworkEnabled()?Promise.resolve():(this.watchStream=this.datastore.newPersistentWatchStream(),this.writeStream=this.datastore.newPersistentWriteStream(),this.localStore.getLastStreamToken().then(function(t){return e.writeStream.lastStreamToken=t,e.shouldStartWatchStream()?e.startWatchStream():e.onlineStateTracker.set(uo.Unknown),e.fillWritePipeline()}))},e.prototype.disableNetwork=function(){return lt.__awaiter(this,void 0,void 0,function(){return lt.__generator(this,function(){return this.disableNetworkInternal(),this.onlineStateTracker.set(uo.Offline),[2]})})},e.prototype.disableNetworkInternal=function(){this.isNetworkEnabled()&&(this.watchStream.stop(),this.writeStream.stop(),this.cleanUpWatchStreamState(),this.cleanUpWriteStreamState(),this.writeStream=null,this.watchStream=null)},e.prototype.shutdown=function(){return i(Pr,"RemoteStore shutting down."),this.disableNetworkInternal(),this.onlineStateTracker.set(uo.Unknown),Promise.resolve()},e.prototype.listen=function(e){c(!m(this.listenTargets,e.targetId),"listen called with duplicate targetId!"),this.listenTargets[e.targetId]=e,this.shouldStartWatchStream()?this.startWatchStream():this.isNetworkEnabled()&&this.watchStream.isOpen()&&this.sendWatchRequest(e)},e.prototype.unlisten=function(e){c(m(this.listenTargets,e),"unlisten called without assigned target ID!"),delete this.listenTargets[e],this.isNetworkEnabled()&&this.watchStream.isOpen()&&(this.sendUnwatchRequest(e),y(this.listenTargets)&&this.watchStream.markIdle())},e.prototype.sendWatchRequest=function(e){this.recordPendingTargetRequest(e.targetId),this.watchStream.watch(e)},e.prototype.sendUnwatchRequest=function(e){this.recordPendingTargetRequest(e),this.watchStream.unwatch(e)},e.prototype.recordPendingTargetRequest=function(e){this.pendingTargetResponses[e]=(this.pendingTargetResponses[e]||0)+1},e.prototype.startWatchStream=function(){c(this.shouldStartWatchStream(),"startWriteStream() called when shouldStartWatchStream() is false."),this.watchStream.start({onOpen:this.onWatchStreamOpen.bind(this),onClose:this.onWatchStreamClose.bind(this),onWatchChange:this.onWatchStreamChange.bind(this)}),this.onlineStateTracker.handleWatchStreamStart()},e.prototype.shouldStartWatchStream=function(){return this.isNetworkEnabled()&&!this.watchStream.isStarted()&&!y(this.listenTargets)},e.prototype.cleanUpWatchStreamState=function(){this.accumulatedWatchChanges=[],this.pendingTargetResponses={}},e.prototype.onWatchStreamOpen=function(){return lt.__awaiter(this,void 0,void 0,function(){var e=this;return lt.__generator(this,function(){return g(this.listenTargets,function(t,n){e.sendWatchRequest(n)}),[2]})})},e.prototype.onWatchStreamClose=function(e){return lt.__awaiter(this,void 0,void 0,function(){return lt.__generator(this,function(){return c(this.isNetworkEnabled(),"onWatchStreamClose() should only be called when the network is enabled"),this.cleanUpWatchStreamState(),this.shouldStartWatchStream()?(e&&this.onlineStateTracker.handleWatchStreamFailure(e),this.startWatchStream()):this.onlineStateTracker.set(uo.Unknown),[2]})})},e.prototype.onWatchStreamChange=function(e,t){return lt.__awaiter(this,void 0,void 0,function(){var n;return lt.__generator(this,function(){return(this.onlineStateTracker.set(uo.Online),e instanceof jn&&e.state===qn.Removed&&e.cause)?[2,this.handleTargetError(e)]:(this.accumulatedWatchChanges.push(e),!t.isEqual(hn.MIN)&&0<=t.compareTo(this.localStore.getLastRemoteSnapshotVersion())?(n=this.accumulatedWatchChanges,this.accumulatedWatchChanges=[],[2,this.handleWatchChangeBatch(t,n)]):[2])})})},e.prototype.handleWatchChangeBatch=function(e,t){var n=this,o=new Wn(e,this.listenTargets,this.pendingTargetResponses);o.addChanges(t);var r=o.createRemoteEvent();this.pendingTargetResponses=o.pendingTargetResponses;var i=[];return g(o.existenceFilters,function(t,o){var s=n.listenTargets[t];if(s){var l=s.query;if(!l.isDocumentQuery()){var d=n.localStore.remoteDocumentKeys(t).then(function(e){if(r.targetChanges[t]){var i=r.targetChanges[t].mapping;null!==i&&(i instanceof Bn?e=i.applyToKeySet(e):(c(i instanceof Fn,"Expected either reset or update mapping but got something else: "+i),e=i.documents))}if(e.size!==o.count){r.handleExistenceFilterMismatch(t);var d=new fn(l,t,s.purpose);n.listenTargets[t]=d,n.sendUnwatchRequest(t);var p=new fn(l,t,gn.ExistenceFilterMismatch);n.sendWatchRequest(p)}});i.push(d)}else if(0===o.count){var p=new Nt(l.path),u=new _t(p,e);r.addDocumentUpdate(u)}else c(1===o.count,"Single document existence filter with count: "+o.count)}}),Promise.all(i).then(function(){return g(r.targetChanges,function(e,t){if(0() instead."),Yr=/^__.*__$/,Zr=function(){function e(e,t,n){this.data=e,this.fieldMask=t,this.fieldTransforms=n}return e.prototype.toMutations=function(e,t){var n=[];return null===this.fieldMask?n.push(new Cn(e,this.data,t)):n.push(new wn(e,this.data,this.fieldMask,t)),0=e.docs.size,"Too many documents returned on a document query");var o=e.docs.get(n._key);t.next(new ma(n.firestore,n._key,o,e.fromCache))}},error:o}),i=this._firestoreClient.listen(on.atPath(this._key.path),r,e);return function(){r.mute(),n._firestoreClient.unlisten(i)}},e.prototype.get=function(e){var t=this;return P("DocumentReference.get",e,["source"]),e&&L("DocumentReference.get","options","source",e.source,["default","server","cache"]),new Promise(function(n,o){e&&"cache"===e.source?t.firestore.ensureClientConfigured().getDocumentFromLocalCache(t._key).then(function(e){n(new ma(t.firestore,t._key,e,!0))},o):t.getViaSnapshotListener(n,o,e)})},e.prototype.getViaSnapshotListener=function(e,t,n){var o=this.onSnapshotInternal({includeMetadataChanges:!0,waitForSyncWhenOnline:!0},{next:function(r){o(),!r.exists&&r.metadata.fromCache?t(new gt(ht.UNAVAILABLE,"Failed to get document because the client is offline.")):r.exists&&r.metadata.fromCache&&n&&"server"===n.source?t(new gt(ht.UNAVAILABLE,"Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to \"server\" to retrieve the cached document.)")):e(r)},error:t})},e}(),ua=function(){function e(e,t){this.hasPendingWrites=e,this.fromCache=t}return e.prototype.isEqual=function(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache},e}(),ma=function(){function e(e,t,n,o){this._firestore=e,this._key=t,this._document=n,this._fromCache=o}return e.prototype.data=function(e){return k("DocumentSnapshot.data",arguments,0,1),e=Qe("DocumentSnapshot.data",e),this._document?this.convertObject(this._document.data,Bt.fromSnapshotOptions(e,this._firestore._areTimestampsInSnapshotsEnabled())):void 0},e.prototype.get=function(e,t){if(k("DocumentSnapshot.get",arguments,1,2),t=Qe("DocumentSnapshot.get",t),this._document){var n=this._document.data.field(ze("DocumentSnapshot.get",e));if(void 0!==n)return this.convertValue(n,Bt.fromSnapshotOptions(t,this._firestore._areTimestampsInSnapshotsEnabled()))}},Object.defineProperty(e.prototype,"id",{get:function(){return this._key.path.lastSegment()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ref",{get:function(){return new pa(this._key,this._firestore)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"exists",{get:function(){return null!==this._document},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"metadata",{get:function(){return new ua(null!==this._document&&this._document.hasLocalMutations,this._fromCache)},enumerable:!0,configurable:!0}),e.prototype.isEqual=function(t){if(!(t instanceof e))throw F("isEqual","DocumentSnapshot",1,t);return this._firestore===t._firestore&&this._fromCache===t._fromCache&&this._key.isEqual(t._key)&&(null===this._document?null===t._document:this._document.isEqual(t._document))},e.prototype.convertObject=function(e,t){var n=this,o={};return e.forEach(function(e,r){o[e]=n.convertValue(r,t)}),o},e.prototype.convertValue=function(e,t){if(e instanceof $t)return this.convertObject(e,t);if(e instanceof Yt)return this.convertArray(e,t);if(e instanceof Qt){var n=e.value(t),o=this._firestore.ensureClientConfigured().databaseId();return e.databaseId.isEqual(o)||s("Document "+this._key.path+" contains a document reference within a different database ("+(e.databaseId.projectId+"/"+e.databaseId.database+") which is not supported. It will be treated as a reference in the current ")+("database ("+o.projectId+"/"+o.database+") instead.")),new pa(n,this._firestore)}return e.value(t)},e.prototype.convertArray=function(e,t){var n=this;return e.internalValue.map(function(e){return n.convertValue(e,t)})},e}(),ha=function(e){function t(t,n,o,r){return e.call(this,t,n,o,r)||this}return lt.__extends(t,e),t.prototype.data=function(t){var n=e.prototype.data.call(this,t);return c("object"==typeof n,"Document in a QueryDocumentSnapshot should exist"),n},t}(ma),ga=function(){function e(e,t){this._query=e,this.firestore=t}return e.prototype.where=function(t,n,o){x("Query.where",arguments,3),C("Query.where","string",2,n),R("Query.where",3,o);var r=ze("Query.where",t),i=rn.fromString(n),s;if(r.isKeyField()){if(i===rn.ARRAY_CONTAINS)throw new gt(ht.INVALID_ARGUMENT,"Invalid Query. You can't perform array-contains queries on FieldPath.documentId() since document IDs are not arrays.");if("string"==typeof o){if(-1!==o.indexOf("/"))throw new gt(ht.INVALID_ARGUMENT,"Function Query.where() requires its third parameter to be a valid document ID if the first parameter is FieldPath.documentId(), but it contains a slash.");if(""===o)throw new gt(ht.INVALID_ARGUMENT,"Function Query.where() requires its third parameter to be a valid document ID if the first parameter is FieldPath.documentId(), but it was an empty string.");var l=this._query.path.child(new Et([o]));c(0==l.length%2,"Path should be a document key"),s=new Qt(this.firestore._databaseId,new Nt(l))}else if(o instanceof pa){s=new Qt(this.firestore._databaseId,o._key)}else throw new gt(ht.INVALID_ARGUMENT,"Function Query.where() requires its third parameter to be a string or a DocumentReference if the first parameter is FieldPath.documentId(), but it was: "+(M(o)+"."))}else s=this.firestore._dataConverter.parseQueryValue("Query.where",o);var d=$(r,i,s);return this.validateNewFilter(d),new e(this._query.addFilter(d),this.firestore)},e.prototype.orderBy=function(t,n){k("Query.orderBy",arguments,1,2),w("Query.orderBy","string",2,n);var o;if(void 0===n||"asc"===n)o=dn.ASCENDING;else if("desc"===n)o=dn.DESCENDING;else throw new gt(ht.INVALID_ARGUMENT,"Function Query.orderBy() has unknown direction '"+n+"', expected 'asc' or 'desc'.");if(null!==this._query.startAt)throw new gt(ht.INVALID_ARGUMENT,"Invalid query. You must not call Query.startAt() or Query.startAfter() before calling Query.orderBy().");if(null!==this._query.endAt)throw new gt(ht.INVALID_ARGUMENT,"Invalid query. You must not call Query.endAt() or Query.endBefore() before calling Query.orderBy().");var r=ze("Query.orderBy",t),i=new pn(r,o);return this.validateNewOrderBy(i),new e(this._query.addOrderBy(i),this.firestore)},e.prototype.limit=function(t){if(x("Query.limit",arguments,1),C("Query.limit","number",1,t),0>=t)throw new gt(ht.INVALID_ARGUMENT,"Invalid Query. Query limit ("+t+") is invalid. Limit must be positive.");return new e(this._query.withLimit(t),this.firestore)},e.prototype.startAt=function(t){for(var n=[],o=1;oo.length)throw new gt(ht.INVALID_ARGUMENT,"Too many arguments provided to "+e+"(). The number of arguments must be less than or equal to the number of Query.orderBy() clauses");for(var r=[],s=0;s, or >=) must be on the same field. But you have inequality filters on '"+t.toString()+"'"+(" and '"+e.field.toString()+"'"));var n=this._query.getFirstOrderByField();null!==n&&this.validateOrderByAndInequalityMatch(e.field,n)}else if(e.op===rn.ARRAY_CONTAINS&&this._query.hasArrayContainsFilter())throw new gt(ht.INVALID_ARGUMENT,"Invalid query. Queries only support a single array-contains filter.")},e.prototype.validateNewOrderBy=function(e){if(null===this._query.getFirstOrderByField()){var t=this._query.getInequalityFilterField();null!==t&&this.validateOrderByAndInequalityMatch(t,e.field)}},e.prototype.validateOrderByAndInequalityMatch=function(e,t){if(!t.isEqual(e))throw new gt(ht.INVALID_ARGUMENT,"Invalid query. You have a where filter with an inequality (<, <=, >, or >=) on field '"+e.toString()+"' "+("and so you must also use '"+e.toString()+"' as your first Query.orderBy(), but your first Query.orderBy() ")+("is on field '"+t.toString()+"' instead."))},e}(),fa=function(){function e(e,t,n){this._firestore=e,this._originalQuery=t,this._snapshot=n,this._cachedChanges=null,this._cachedChangesIncludeMetadataChanges=null,this.metadata=new ua(n.hasPendingWrites,n.fromCache)}return Object.defineProperty(e.prototype,"docs",{get:function(){var e=[];return this.forEach(function(t){return e.push(t)}),e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"empty",{get:function(){return this._snapshot.docs.isEmpty()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this._snapshot.docs.size},enumerable:!0,configurable:!0}),e.prototype.forEach=function(e,t){var n=this;k("QuerySnapshot.forEach",arguments,1,2),C("QuerySnapshot.forEach","function",1,e),this._snapshot.docs.forEach(function(o){e.call(t,n.convertToDocumentImpl(o))})},Object.defineProperty(e.prototype,"query",{get:function(){return new ga(this._originalQuery,this._firestore)},enumerable:!0,configurable:!0}),e.prototype.docChanges=function(e){P("QuerySnapshot.docChanges",e,["includeMetadataChanges"]),e&&E("QuerySnapshot.docChanges","boolean","includeMetadataChanges",e.includeMetadataChanges);var t=e&&e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new gt(ht.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=$e(this._firestore,t,this._snapshot),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges},e.prototype.isEqual=function(t){if(!(t instanceof e))throw F("isEqual","QuerySnapshot",1,t);return this._firestore===t._firestore&&this._originalQuery.isEqual(t._originalQuery)&&this._snapshot.isEqual(t._snapshot)},e.prototype.convertToDocumentImpl=function(e){return new ha(this._firestore,e.key,e,this.metadata.fromCache)},e}(),ya=["length","forEach","map"].concat("undefined"==typeof Symbol?[]:[Symbol.iterator]);ya.forEach(function(e){try{Object.defineProperty(fa.prototype.docChanges,e,{get:function(){return Ge()}})}catch(e){}});var ba=function(e){function t(t,n){var o=e.call(this,on.atPath(t),n)||this;if(1!=t.length%2)throw new gt(ht.INVALID_ARGUMENT,"Invalid collection reference. Collection references must have an odd number of segments, but "+(t.canonicalString()+" has "+t.length));return o}return lt.__extends(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this._query.path.lastSegment()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){var e=this._query.path.popLast();return e.isEmpty()?null:new pa(new Nt(e),this.firestore)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return this._query.path.canonicalString()},enumerable:!0,configurable:!0}),t.prototype.doc=function(e){if(k("CollectionReference.doc",arguments,0,1),0===arguments.length&&(e=ft.newId()),C("CollectionReference.doc","string",1,e),""===e)throw new gt(ht.INVALID_ARGUMENT,"Document path must be a non-empty string");var t=Et.fromString(e);return pa.forPath(this._query.path.child(t),this.firestore)},t.prototype.add=function(e){x("CollectionReference.add",arguments,1),C("CollectionReference.add","object",1,e);var t=this.doc();return t.set(e).then(function(){return t})},t}(ga),xa=u(la,"Use firebase.firestore() instead."),va=u(da,"Use firebase.firestore().runTransaction() instead."),ka=u(ca,"Use firebase.firestore().batch() instead."),Sa=u(pa,"Use firebase.firestore().doc() instead."),Ca=u(ma),wa=u(ha),Ta=u(ga),Ea=u(fa),Aa=u(ba,"Use firebase.firestore().collection() instead."),Ia={Firestore:xa,GeoPoint:xt,Timestamp:vt,Blob:bt,Transaction:va,WriteBatch:ka,DocumentReference:Sa,DocumentSnapshot:Ca,Query:Ta,QueryDocumentSnapshot:wa,QuerySnapshot:Ea,CollectionReference:Aa,FieldPath:co,FieldValue:$r,setLogLevel:la.setLogLevel};et(it),t.registerFirestore=et},"ew/s":function(e,t,n){(function(e){e(n("tQq4"),n("4e7A"))})(function(e){"use strict";function t(e,t,n,o,r){e.openDialog?e.openDialog(t,r,{value:o,selectValueOnOpen:!0}):r(prompt(n,o))}function n(e,t){var n=+t;return /^[-+]/.test(t)?e.getCursor().line+n:n-1}e.commands.jumpToLine=function(e){var o=e.getCursor();t(e,"Jump to line: (Use line:column or scroll% syntax)","Jump to line:",o.line+1+":"+o.ch,function(t){if(t){var r;if(r=/^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(t))e.setCursor(n(e,r[1]),+r[2]);else if(r=/^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(t)){var i=Math.round(e.lineCount()*+r[1]/100);/^[-+]/.test(r[1])&&(i=o.line+i+1),e.setCursor(i-1,o.ch)}else(r=/^\s*\:?\s*([\+\-]?\d+)\s*/.exec(t))&&e.setCursor(n(e,r[1]),o.ch)}})},e.keyMap["default"]["Alt-G"]="jumpToLine"})},gPKv:function(e,t,n){(function(e){e(n("tQq4"))})(function(e){"use strict";function t(e){for(var t=0;tr)return v(o)?e.stylize(RegExp.prototype.toString.call(o),"regexp"):e.stylize("[Object]","special");e.seen.push(o);var n;return n=T?p(e,o,r,y,f):f.map(function(t){return u(e,o,r,y,t,T)}),e.seen.pop(),m(n,k,E)}function d(e,t){if(x(t))return e.stylize("undefined","undefined");if(b(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,"\"")+"'";return e.stylize(n,"string")}return f(t)?e.stylize(""+t,"number"):g(t)?e.stylize(""+t,"boolean"):y(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,n,o,r){for(var s=[],d=0,i=t.length;de.seen.indexOf(c.value)?(d=y(n)?l(e,c.value,null):l(e,c.value,n-1),-1e?"0"+e.toString(10):e.toString(10)}function A(){var e=new Date,t=[E(e.getHours()),E(e.getMinutes()),E(e.getSeconds())].join(":");return[e.getDate(),O[e.getMonth()],t].join(" ")}function I(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var N=/%[sdj%]/g;t.format=function(e){if(!b(e)){for(var t=[],n=0;n=i)return e;switch(e){case"%s":return r[n++]+"";case"%d":return+r[n++];case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e;}}),l=r[n];n*\/]/.test(n)?o(null,"select-op"):"."==n&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?o("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?o(null,n):("u"==n||"U"==n)&&e.match(/rl(-prefix)?\(/i)||("d"==n||"D"==n)&&e.match("omain(",!0,!0)||("r"==n||"R"==n)&&e.match("egexp(",!0,!0)?(e.backUp(1),t.tokenize=s,o("property","word")):/[\w\\\-]/.test(n)?(e.eatWhile(/[\w\\\-]/),o("property","word")):o(null,null)}function i(e){return function(t,n){for(var r=!1,i;null!=(i=t.next());){if(i==e&&!r){")"==e&&t.backUp(1);break}r=!r&&"\\"==i}return i!=e&&(r||")"==e)||(n.tokenize=null),o("string","string")}}function s(e,t){return e.next(),t.tokenize=e.match(/\s*[\"\')]/,!1)?null:i(")"),o(null,"(")}function l(e,t,n){this.type=e,this.indent=t,this.prev=n}function d(e,t,n,o){return e.context=new l(n,t.indentation()+(!1===o?0:g),e.context),n}function c(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function p(e,t,n){return L[n.context.type](e,t,n)}function u(e,t,o,r){for(var n=r||1;0=this.size-(this.bMin+I+this.bGutterSize)&&(e=this.size-(this.bMin+this.bGutterSize)),g.call(this,e),u.onDrag&&u.onDrag())}function y(){var e=t.getComputedStyle(this.parent),n=this.parent[R]-parseFloat(e[B]||0)-parseFloat(e[U]||0);this.size=this.a[r]()[D]+this.b[r]()[D]+this.aGutterSize+this.bGutterSize,this.percentage=Math.min(100*(this.size/n),100),this.start=this.a[r]()[F]}function x(){var e=this,n=e.a,r=e.b;e.dragging&&u.onDragEnd&&u.onDragEnd(),e.dragging=!1,t[o]("mouseup",e.stop),t[o]("touchend",e.stop),t[o]("touchcancel",e.stop),e.parent[o]("mousemove",e.move),e.parent[o]("touchmove",e.move),delete e.stop,delete e.move,n[o]("selectstart",i),n[o]("dragstart",i),r[o]("selectstart",i),r[o]("dragstart",i),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",e.gutter.style.cursor="",e.parent.style.cursor=""}function b(o){var e=this,r=e.a,s=e.b;!e.dragging&&u.onDragStart&&u.onDragStart(),o.preventDefault(),e.dragging=!0,e.move=f.bind(e),e.stop=x.bind(e),t[n]("mouseup",e.stop),t[n]("touchend",e.stop),t[n]("touchcancel",e.stop),e.parent[n]("mousemove",e.move),e.parent[n]("touchmove",e.move),r[n]("selectstart",i),r[n]("dragstart",i),s[n]("selectstart",i),s[n]("dragstart",i),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",s.style.userSelect="none",s.style.webkitUserSelect="none",s.style.MozUserSelect="none",s.style.pointerEvents="none",e.gutter.style.cursor=L,e.parent.style.cursor=L,y.call(e)}function v(e){e.forEach(function(t,n){if(0e;e++)n.execCommand("goCharRight");else if("surround"==x){for(var t=n.getSelections(),e=0;ee&&e.default?e.default:e;let i=r(n("JkW7"));if("function"==typeof i){let e=document.body.firstElementChild;!1,(()=>{let t=r(n("JkW7"));e=(0,o.render)((0,o.h)(t),document.body,e)})()}},q6qL:function(e,t,n){(function(t,o){e.exports=o(n("KM04"))})(this,function(e){"use strict";var t=function(){function e(e){this.value=e}function t(t){function n(r,i){try{var s=t[r](i),l=s.value;l instanceof e?Promise.resolve(l.value).then(function(e){n("next",e)},function(e){n("throw",e)}):o(s.done?"return":"normal",s.value)}catch(e){o("throw",e)}}function o(e,t){"return"===e?r.resolve({value:t,done:!0}):"throw"===e?r.reject(t):r.resolve({value:t,done:!1}),r=r.next,r?n(r.key,r.arg):i=null}var r,i;this._invoke=function(e,t){return new Promise(function(o,s){var l={key:e,arg:t,resolve:o,reject:s,next:null};i?i=i.next=l:(r=i=l,n(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)},{wrap:function(e){return function(){return new t(e.apply(this,arguments))}},await:function(t){return new e(t)}}}(),n=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},o=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t&&("object"==typeof t||"function"==typeof t)?t:e},i=function(t){function i(){return n(this,i),r(this,t.apply(this,arguments))}return o(i,t),i.prototype.componentDidUpdate=function(e){for(var t in e)if(e[t]!==this.props[t])return setTimeout(this.renderLayer)},i.prototype.componentDidMount=function(){this.isMounted=!0,this.renderLayer=this.renderLayer.bind(this),this.renderLayer()},i.prototype.componentWillUnmount=function(){this.renderLayer(!1),this.isMounted=!1,this.remote&&this.remote.parentNode.removeChild(this.remote)},i.prototype.findNode=function(e){return"string"==typeof e?document.querySelector(e):e},i.prototype.renderLayer=function(){var t=0"))return r("=>","operator");if("0"==n&&e.match(/^(?:x[\da-f]+|o[0-7]+|b[01]+)n?/i))return r("number","number");if(/\d/.test(n))return e.match(/^\d*(?:n|(?:\.\d*)?(?:[eE][+\-]?\d+)?)?/),r("number","number");if("/"==n)return e.eat("*")?(t.tokenize=l,l(e,t)):e.eat("/")?(e.skipToEnd(),r("comment","comment")):Be(e,t,1)?(o(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),r("regexp","string-2")):(e.eat("="),r("operator","operator",e.current()));if("`"==n)return t.tokenize=d,d(e,t);if("#"==n)return e.skipToEnd(),r("error","error");if(Ke.test(n))return">"==n&&t.lexical&&">"==t.lexical.type||(e.eat("=")?("!"==n||"="==n)&&e.eat("="):/[<>*+\-]/.test(n)&&(e.eat(n),">"==n&&e.eat(n))),r("operator","operator",e.current());if(ze.test(n)){e.eatWhile(ze);var s=e.current();if("."!=t.lastType){if(He.propertyIsEnumerable(s)){var c=He[s];return r(c.type,c.style,s)}if("async"==s&&e.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/,!1))return r("async","keyword",s)}return r("variable","variable",s)}}function i(e){return function(t,n){var o=!1,i;if(qe&&"@"==t.peek()&&t.match(Ge))return n.tokenize=s,r("jsonld-keyword","meta");for(;null!=(i=t.next())&&(i!=e||o);)o=!o&&"\\"==i;return o||(n.tokenize=s),r("string","string")}}function l(e,t){for(var n=!1,o;o=e.next();){if("/"==o&&n){t.tokenize=s;break}n="*"==o}return r("comment","comment")}function d(e,t){for(var n=!1,o;null!=(o=e.next());){if(!n&&("`"==o||"$"==o&&e.eat("{"))){t.tokenize=s;break}n=!n&&"\\"==o}return r("quasi","string-2",e.current())}function c(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf("=>",e.start);if(!(0>n)){if(We){var o=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));o&&(n=o.index)}for(var r=0,i=!1,s=n-1;0<=s;--s){var l=e.string.charAt(s),d=Xe.indexOf(l);if(0<=d&&3>d){if(!r){++s;break}if(0==--r){"("==l&&(i=!0);break}}else if(3<=d&&6>d)++r;else if(ze.test(l))i=!0;else{if(/["'\/]/.test(l))return;if(i&&!r){++s;break}}}i&&!r&&(t.fatArrowAt=s)}}function p(e,t,n,o,r,i){this.indented=e,this.column=t,this.type=n,this.prev=r,this.info=i,null!=o&&(this.align=o)}function u(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var o=e.context;o;o=o.prev)for(var n=o.vars;n;n=n.next)if(n.name==t)return!0}function m(e,t,n,o,r){var i=e.cc;for(Je.state=e,Je.stream=r,Je.marked=null,Je.cc=i,Je.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){var s=i.length?i.pop():je?L:I;if(s(n,o)){for(;i.length&&i[i.length-1].lex;)i.pop()();return Je.marked?Je.marked:"variable"==n&&u(e,o)?"variable-2":t}}}function h(){for(var e=arguments.length-1;0<=e;e--)Je.cc.push(arguments[e])}function g(){return h.apply(null,arguments),!0}function f(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function y(e){var t=Je.state;if(Je.marked="def",t.context)if("var"==t.lexical.info&&t.context&&t.context.block){var o=b(e,t.context);if(null!=o)return void(t.context=o)}else if(!f(e,t.localVars))return void(t.localVars=new k(e,t.localVars));n.globalVars&&!f(e,t.globalVars)&&(t.globalVars=new k(e,t.globalVars))}function b(e,t){if(!t)return null;if(t.block){var n=b(e,t.prev);return n?n==t.prev?t:new v(n,t.vars,!0):null}return f(e,t.vars)?t:new v(t.prev,new k(e,t.vars),!1)}function x(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function v(e,t,n){this.prev=e,this.vars=t,this.block=n}function k(e,t){this.name=e,this.next=t}function S(){Je.state.context=new v(Je.state.context,Je.state.localVars,!1),Je.state.localVars=$e}function C(){Je.state.context=new v(Je.state.context,Je.state.localVars,!0),Je.state.localVars=null}function w(){Je.state.localVars=Je.state.context.vars,Je.state.context=Je.state.context.prev}function T(e,t){var n=function(){var n=Je.state,o=n.indented;if("stat"==n.lexical.type)o=n.lexical.indented;else for(var r=n.lexical;r&&")"==r.type&&r.align;r=r.prev)o=r.indented;n.lexical=new p(o,Je.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function E(){var e=Je.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function A(e){function t(n){return n==e?g():";"==e?h():g(t)}return t}function I(e,t){return"var"==e?g(T("vardef",t),de,A(";"),E):"keyword a"==e?g(T("form"),O,I,E):"keyword b"==e?g(T("form"),I,E):"keyword d"==e?Je.stream.match(/^\s*$/,!1)?g():g(T("stat"),D,A(";"),E):"debugger"==e?g(A(";")):"{"==e?g(T("}"),C,$,E,w):";"==e?g():"if"==e?("else"==Je.state.lexical.info&&Je.state.cc[Je.state.cc.length-1]==E&&Je.state.cc.pop()(),g(T("form"),O,I,E,he)):"function"==e?g(ve):"for"==e?g(T("form"),ge,I,E):"class"==e||We&&"interface"==t?(Je.marked="keyword",g(T("form"),Ce,E)):"variable"==e?We&&"declare"==t?(Je.marked="keyword",g(I)):We&&("module"==t||"enum"==t||"type"==t)&&Je.stream.match(/^\s*\w/,!1)?(Je.marked="keyword","enum"==t?g(Re):"type"==t?g(te,A("operator"),te,A(";")):g(T("form"),ce,A("{"),T("}"),$,E,E)):We&&"namespace"==t?(Je.marked="keyword",g(T("form"),L,$,E)):We&&"abstract"==t?(Je.marked="keyword",g(I)):g(T("stat"),z):"switch"==e?g(T("form"),O,A("{"),T("}","switch"),C,$,E,E,w):"case"==e?g(L,A(":")):"default"==e?g(A(":")):"catch"==e?g(T("form"),S,N,I,E,w):"export"==e?g(T("stat"),Ae,E):"import"==e?g(T("stat"),Ne,E):"async"==e?g(I):"@"==t?g(L,I):h(T("stat"),L,A(";"),E)}function N(e){if("("==e)return g(ke,A(")"))}function L(e,t){return M(e,t,!1)}function _(e,t){return M(e,t,!0)}function O(e){return"("==e?g(T(")"),L,A(")"),E):h()}function M(e,t,n){if(Je.state.fatArrowAt==Je.stream.start){var o=n?V:U;if("("==e)return g(S,T(")"),Q(ke,")"),E,A("=>"),o,w);if("variable"==e)return h(S,ce,A("=>"),o,w)}var r=n?P:R;return Qe.hasOwnProperty(e)?g(r):"function"==e?g(ve,r):"class"==e||We&&"interface"==t?(Je.marked="keyword",g(T("form"),Se,E)):"keyword c"==e||"async"==e?g(n?_:L):"("==e?g(T(")"),D,A(")"),E,r):"operator"==e||"spread"==e?g(n?_:L):"["==e?g(T("]"),De,E,r):"{"==e?J(K,"}",null,r):"quasi"==e?h(F,r):"new"==e?g(q(n)):"import"==e?g(L):g()}function D(e){return e.match(/[;\}\)\],]/)?h():h(L)}function R(e,t){return","==e?g(L):P(e,t,!1)}function P(e,t,n){var o=!1==n?R:P,r=!1==n?L:_;return"=>"==e?g(S,n?V:U,w):"operator"==e?/\+\+|--/.test(t)||We&&"!"==t?g(o):We&&"<"==t&&Je.stream.match(/^([^>]|<.*?>)*>\s*\(/,!1)?g(T(">"),Q(te,">"),E,o):"?"==t?g(L,A(":"),r):g(r):"quasi"==e?h(F,o):";"==e?void 0:"("==e?J(_,")","call",o):"."==e?g(H,o):"["==e?g(T("]"),D,A("]"),E,o):We&&"as"==t?(Je.marked="keyword",g(te,o)):"regexp"==e?(Je.state.lastType=Je.marked="operator",Je.stream.backUp(Je.stream.pos-Je.stream.start-1),g(r)):void 0}function F(e,t){return"quasi"==e?"${"==t.slice(t.length-2)?g(L,B):g(F):h()}function B(e){if("}"==e)return Je.marked="string-2",Je.state.tokenize=d,g(F)}function U(e){return c(Je.stream,Je.state),h("{"==e?I:L)}function V(e){return c(Je.stream,Je.state),h("{"==e?I:_)}function q(e){return function(t){return"."==t?g(e?W:j):"variable"==t&&We?g(ie,e?P:R):h(e?_:L)}}function j(e,t){if("target"==t)return Je.marked="keyword",g(R)}function W(e,t){if("target"==t)return Je.marked="keyword",g(P)}function z(e){return":"==e?g(E,I):h(R,A(";"),E)}function H(e){if("variable"==e)return Je.marked="property",g()}function K(e,t){if("async"==e)return Je.marked="property",g(K);if("variable"==e||"keyword"==Je.style){if(Je.marked="property","get"==t||"set"==t)return g(G);var n;return We&&Je.state.fatArrowAt==Je.stream.start&&(n=Je.stream.match(/^\s*:\s*/,!1))&&(Je.state.fatArrowAt=Je.stream.pos+n[0].length),g(X)}return"number"==e||"string"==e?(Je.marked=qe?"property":Je.style+" property",g(X)):"jsonld-keyword"==e?g(X):We&&x(t)?(Je.marked="keyword",g(K)):"["==e?g(L,Y,A("]"),X):"spread"==e?g(_,X):"*"==t?(Je.marked="keyword",g(K)):":"==e?h(X):void 0}function G(e){return"variable"==e?(Je.marked="property",g(ve)):h(X)}function X(e){return":"==e?g(_):"("==e?h(ve):void 0}function Q(e,t,n){function o(r,i){if(n?-1"),te):void 0}function ne(e){if("=>"==e)return g(te)}function oe(e,t){return"variable"==e||"keyword"==Je.style?(Je.marked="property",g(oe)):"?"==t?g(oe):":"==e?g(te):"["==e?g(L,Y,A("]"),oe):void 0}function re(e,t){return"variable"==e&&Je.stream.match(/^\s*[?:]/,!1)||"?"==t?g(re):":"==e?g(te):h(te)}function ae(e,t){return"<"==t?g(T(">"),Q(te,">"),E,ae):"|"==t||"."==e||"&"==t?g(te):"["==e?g(A("]"),ae):"extends"==t||"implements"==t?(Je.marked="keyword",g(te)):void 0}function ie(e,t){if("<"==t)return g(T(">"),Q(te,">"),E,ae)}function se(){return h(te,le)}function le(e,t){if("="==t)return g(te)}function de(e,t){return"enum"==t?(Je.marked="keyword",g(Re)):h(ce,Y,ue,me)}function ce(e,t){return We&&x(t)?(Je.marked="keyword",g(ce)):"variable"==e?(y(t),g()):"spread"==e?g(ce):"["==e?J(ce,"]"):"{"==e?J(pe,"}"):void 0}function pe(e,t){return"variable"!=e||Je.stream.match(/^\s*:/,!1)?("variable"==e&&(Je.marked="property"),"spread"==e?g(ce):"}"==e?h():g(A(":"),ce,ue)):(y(t),g(ue))}function ue(e,t){if("="==t)return g(_)}function me(e){if(","==e)return g(de)}function he(e,t){if("keyword b"==e&&"else"==t)return g(T("form","else"),I,E)}function ge(e,t){return"await"==t?g(ge):"("==e?g(T(")"),fe,A(")"),E):void 0}function fe(e){return"var"==e?g(de,A(";"),be):";"==e?g(be):"variable"==e?g(ye):h(L,A(";"),be)}function ye(e,t){return"in"==t||"of"==t?(Je.marked="keyword",g(L)):g(R,be)}function be(e,t){return";"==e?g(xe):"in"==t||"of"==t?(Je.marked="keyword",g(L)):h(L,A(";"),xe)}function xe(e){")"!=e&&g(L)}function ve(e,t){return"*"==t?(Je.marked="keyword",g(ve)):"variable"==e?(y(t),g(ve)):"("==e?g(S,T(")"),Q(ke,")"),E,Z,I,w):We&&"<"==t?g(T(">"),Q(se,">"),E,ve):void 0}function ke(e,t){return"@"==t&&g(L,ke),"spread"==e?g(ke):We&&x(t)?(Je.marked="keyword",g(ke)):h(ce,Y,ue)}function Se(e,t){return"variable"==e?Ce(e,t):we(e,t)}function Ce(e,t){if("variable"==e)return y(t),g(we)}function we(e,t){return"<"==t?g(T(">"),Q(se,">"),E,we):"extends"==t||"implements"==t||We&&","==e?("implements"==t&&(Je.marked="keyword"),g(We?te:L,we)):"{"==e?g(T("}"),Te,E):void 0}function Te(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||We&&x(t))&&Je.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(Je.marked="keyword",g(Te)):"variable"==e||"keyword"==Je.style?(Je.marked="property",g(We?Ee:ve,Te)):"["==e?g(L,Y,A("]"),We?Ee:ve,Te):"*"==t?(Je.marked="keyword",g(Te)):";"==e?g(Te):"}"==e?g():"@"==t?g(L,Te):void 0}function Ee(e,t){return"?"==t?g(Ee):":"==e?g(te,ue):"="==t?g(_):h(ve)}function Ae(e,t){return"*"==t?(Je.marked="keyword",g(Me,A(";"))):"default"==t?(Je.marked="keyword",g(L,A(";"))):"{"==e?g(Q(Ie,"}"),Me,A(";")):h(I)}function Ie(e,t){return"as"==t?(Je.marked="keyword",g(A("variable"))):"variable"==e?h(_,Ie):void 0}function Ne(e){return"string"==e?g():"("==e?h(L):h(Le,_e,Me)}function Le(e,t){return"{"==e?J(Le,"}"):("variable"==e&&y(t),"*"==t&&(Je.marked="keyword"),g(Oe))}function _e(e){if(","==e)return g(Le,_e)}function Oe(e,t){if("as"==t)return Je.marked="keyword",g(Le)}function Me(e,t){if("from"==t)return Je.marked="keyword",g(L)}function De(e){return"]"==e?g():h(Q(_,"]"))}function Re(){return h(T("form"),ce,A("{"),T("}"),Q(Pe,"}"),E,E)}function Pe(){return h(ce,ue)}function Fe(e,t){return"operator"==e.lastType||","==e.lastType||Ke.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function Be(e,t,n){return t.tokenize==s&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}var Ue=t.indentUnit,Ve=n.statementIndent,qe=n.jsonld,je=n.json||qe,We=n.typescript,ze=n.wordCharacters||/[\w$\xa1-\uffff]/,He=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),o=e("keyword c"),r=e("keyword d"),i=e("operator"),s={type:"atom",style:"atom"};return{if:e("if"),while:t,with:t,else:n,do:n,try:n,finally:n,return:r,break:r,continue:r,new:e("new"),delete:o,void:o,throw:o,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:i,typeof:i,instanceof:i,true:s,false:s,null:s,undefined:s,NaN:s,Infinity:s,this:e("this"),class:e("class"),super:e("atom"),yield:o,export:e("export"),import:e("import"),extends:o,await:o}}(),Ke=/[+\-*&%=<>!?|~^@]/,Ge=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Xe="([{}])",Qe={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},Je={state:null,column:null,marked:null,cc:null},$e=new k("this",new k("arguments",null)),Ye,Ze;return w.lex=!0,E.lex=!0,{startState:function(e){var t={tokenize:s,lastType:"sof",cc:[],lexical:new p((e||0)-Ue,0,"block",!1),localVars:n.localVars,context:n.localVars&&new v(null,null,!1),indented:e||0};return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(!t.lexical.hasOwnProperty("align")&&(t.lexical.align=!1),t.indented=e.indentation(),c(e,t)),t.tokenize!=l&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==Ye?n:(t.lastType="operator"==Ye&&("++"==Ze||"--"==Ze)?"incdec":Ye,m(t,n,Ye,Ze,e))},indent:function(t,o){if(t.tokenize==l)return e.Pass;if(t.tokenize!=s)return 0;var r=o&&o.charAt(0),d=t.lexical,p;if(!/^\s*else\b/.test(o))for(var u=t.cc.length-1,i;0<=u;--u)if(i=t.cc[u],i==E)d=d.prev;else if(i!=he)break;for(;("stat"==d.type||"form"==d.type)&&("}"==r||(p=t.cc[t.cc.length-1])&&(p==R||p==P)&&!/^[,\.=+\-*:?[\(]/.test(o));)d=d.prev;Ve&&")"==d.type&&"stat"==d.prev.type&&(d=d.prev);var c=d.type,m=r==c;return"vardef"==c?d.indented+("operator"==t.lastType||","==t.lastType?d.info.length+1:0):"form"==c&&"{"==r?d.indented:"form"==c?d.indented+Ue:"stat"==c?d.indented+(Fe(t,o)?Ve||Ue:0):"switch"!=d.info||m||!1==n.doubleIndentSwitch?d.align?d.column+(m?0:1):d.indented+(m?0:Ue):d.indented+(/^(?:case|default)\b/.test(o)?Ue:2*Ue)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:je?null:"/*",blockCommentEnd:je?null:"*/",blockCommentContinue:je?null:" * ",lineComment:je?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:je?"json":"javascript",jsonldMode:qe,jsonMode:je,expressionAllowed:Be,skipExpression:function(e){var t=e.cc[e.cc.length-1];(t==L||t==_)&&e.cc.pop()}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})},rbVD:function(e,t,n){var o=Math.max;(function(e){e(n("tQq4"))})(function(e){"use strict";function t(e,t){this.cm=e,this.options=t,this.widget=null,this.debounce=0,this.tick=0,this.startPos=this.cm.getCursor("start"),this.startLen=this.cm.getLine(this.startPos.line).length-this.cm.getSelection().length;var n=this;e.on("cursorActivity",this.activityFunc=function(){n.cursorActivity()})}function n(e,t,n){var o=e.options.hintOptions,r={};for(var i in g)r[i]=g[i];if(o)for(var i in o)void 0!==o[i]&&(r[i]=o[i]);if(n)for(var i in n)void 0!==n[i]&&(r[i]=n[i]);return r.hint.resolve&&(r.hint=r.hint.resolve(e,t)),r}function r(e){return"string"==typeof e?e:e.text}function s(e,t){function n(e,n){var r;r="string"==typeof n?o.hasOwnProperty(n)?o[n]:n:function(e){return n(e,t)},i[e]=r}var o={Up:function(){t.moveFocus(-1)},Down:function(){t.moveFocus(1)},PageUp:function(){t.moveFocus(-t.menuSize()+1,!0)},PageDown:function(){t.moveFocus(t.menuSize()-1,!0)},Home:function(){t.setFocus(0)},End:function(){t.setFocus(t.length-1)},Enter:t.pick,Tab:t.pick,Esc:t.close},r=e.options.customKeys,i=r?{}:o;if(r)for(var s in r)r.hasOwnProperty(s)&&n(s,r[s]);var l=e.options.extraKeys;if(l)for(var s in l)l.hasOwnProperty(s)&&n(s,l[s]);return i}function i(e,t){for(;t&&t!=e;){if("LI"===t.nodeName.toUpperCase()&&t.parentNode==e)return t;t=t.parentNode}}function l(n,t){this.completion=n,this.data=t,this.picked=!1;var l=this,d=n.cm,c=this.hints=document.createElement("ul");c.className="CodeMirror-hints",this.selectedHint=t.selectedHint||0;for(var m=t.list,h=0;hc.clientHeight+1,A=d.getScrollInfo();if(0C){c.style.height=C-5+"px",c.style.top=(v=b.bottom-w.top)+"px";var L=d.getCursor();t.from.ch!=L.ch&&(b=d.cursorCoords(L),c.style.left=(x=b.left)+"px",w=c.getBoundingClientRect())}}var _=w.right-S;if(0<_&&(w.right-w.left>S&&(c.style.width=S-5+"px",_-=w.right-w.left-S),c.style.left=(x=b.left-_)+"px"),E)for(var O=c.firstChild;O;O=O.nextSibling)O.style.paddingRight=d.display.nativeBarWidth+"px";if(d.addKeyMap(this.keyMap=s(n,{moveFocus:function(e,t){l.changeActive(l.selectedHint+e,t)},setFocus:function(e){l.changeActive(e)},menuSize:function(){return l.screenAmount()},length:m.length,close:function(){n.close()},pick:function(){l.pick()},data:t})),n.options.closeOnUnfocus){var M;d.on("blur",this.onBlur=function(){M=setTimeout(function(){n.close()},100)}),d.on("focus",this.onFocus=function(){clearTimeout(M)})}return d.on("scroll",this.onScroll=function(){var e=d.getScrollInfo(),t=d.getWrapperElement().getBoundingClientRect(),o=v+A.top-e.top,r=o-(window.pageYOffset||(document.documentElement||document.body).scrollTop);return k||(r+=c.offsetHeight),r<=t.top||r>=t.bottom?n.close():void(c.style.top=o+"px",c.style.left=x+A.left-e.left+"px")}),e.on(c,"dblclick",function(n){var e=i(c,n.target||n.srcElement);e&&null!=e.hintId&&(l.changeActive(e.hintId),l.pick())}),e.on(c,"click",function(o){var e=i(c,o.target||o.srcElement);e&&null!=e.hintId&&(l.changeActive(e.hintId),n.options.completeOnSingleClick&&l.pick())}),e.on(c,"mousedown",function(){setTimeout(function(){d.focus()},20)}),e.signal(t,"select",m[this.selectedHint],c.childNodes[this.selectedHint]),!0}function d(e,t){if(!e.somethingSelected())return t;for(var n=[],o=0;o=this.data.list.length?t=n?this.data.list.length-1:0:0>t&&(t=n?0:this.data.list.length-1),this.selectedHint!=t){var o=this.hints.childNodes[this.selectedHint];o&&(o.className=o.className.replace(" "+u,"")),o=this.hints.childNodes[this.selectedHint=t],o.className+=" "+u,o.offsetTopthis.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=o.offsetTop+o.offsetHeight-this.hints.clientHeight+3),e.signal(this.data,"select",this.data.list[this.selectedHint],o)}},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1}},e.registerHelper("hint","auto",{resolve:function(t,n){var o=t.getHelpers(n,"hint"),r;if(o.length){var i=function(e,t,n){function r(o){return o==s.length?t(null):void c(s[o],e,n,function(e){e&&0,]/,closeOnUnfocus:!0,completeOnSingleClick:!0,container:null,customKeys:null,extraKeys:null};e.defineOption("hintOptions",null)})},tMLt:function(e,t,n){(function(e){e(n("tQq4"),n("H+g/"))})(function(e){"use strict";function t(e){this.options=e,this.from=this.to=0}function n(e){return!0===e&&(e={}),null==e.gutter&&(e.gutter="CodeMirror-foldgutter"),null==e.indicatorOpen&&(e.indicatorOpen="CodeMirror-foldgutter-open"),null==e.indicatorFolded&&(e.indicatorFolded="CodeMirror-foldgutter-folded"),e}function o(e,t){for(var n=e.findMarks(u(t,0),u(t+1,0)),o=0;o=l&&(n=r(i.indicatorOpen))}e.setGutterMarker(t,i.gutter,n),++s})}function s(e){var t=e.getViewport(),n=e.state.foldGutter;n&&(e.operation(function(){i(e,t.from,t.to)}),n.from=t.from,n.to=t.to)}function l(e,t,n){var r=e.state.foldGutter;if(r){var i=r.options;if(n==i.gutter){var s=o(e,t);s?s.clear():e.foldCode(u(t,0),i.rangeFinder)}}}function d(e){var t=e.state.foldGutter;if(t){var n=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){s(e)},n.foldOnChangeTimeSpan||600)}}function c(e){var t=e.state.foldGutter;if(t){var n=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var n=e.getViewport();t.from==t.to||20t.to&&(i(e,t.to,n.to),t.to=n.to)})},n.updateViewportTimeSpan||400)}}function p(e,t){var n=e.state.foldGutter;if(n){var o=t.line;o>=n.from&&on||n>=t)return i+(t-l);i+=n-l,i+=o-i%o,l=n+1}}function x(e,t){for(var n=0;n=t)return o+s(l,t-r);if(r+=i-o,r+=n-r%n,o=i+1,r>=t)return o}}function S(e){for(;es.length<=e;)es.push(C(es)+" ");return es[e]}function C(e){return e[e.length-1]}function w(e,t){for(var n=[],o=0;on?0o?-1:1;;){if(n==o)return n;var s=(n+o)/2,l=0>i?t(s):r(s);if(l==n)return e(l)?n:o;e(l)?o=l:n=l+i}}function D(e,t,n){var o=this;this.input=n,o.scrollbarFiller=p("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=p("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=u("div",null,"CodeMirror-code"),o.selectionDiv=p("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=p("div",null,"CodeMirror-cursors"),o.measure=p("div",null,"CodeMirror-measure"),o.lineMeasure=p("div",null,"CodeMirror-measure"),o.lineSpace=u("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var r=u("div",[o.lineSpace],"CodeMirror-lines");o.mover=p("div",[r],null,"position: relative"),o.sizer=p("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=p("div",null,null,"position: absolute; height: "+Qi+"px; width: 1px;"),o.gutters=p("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=p("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=p("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),Ai&&8>Ii&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),Ni||Ci&&Bi||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,n.init(o)}function R(e,t){if(t-=e.first,0>t||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var o=0;;++o){var r=n.children[o],i=r.chunkSize();if(t=e.first&&tz(e,t)?t:e}function X(e,t){return 0>z(e,t)?e:t}function Q(e,t){return l(e.first,s(t,e.first+e.size-1))}function J(e,t){if(t.linen?W(n,R(e,n).text.length):$(t,R(e,t.line).text.length)}function $(e,t){var n=e.ch;return null==n||n>t?W(e.line,t):0>n?W(e.line,0):e}function Y(e,t){for(var n=[],o=0;o=t:i.to>t);(o||(o=[])).push(new te(s,i.from,d?null:i.to))}}return o}function se(e,t,n){var o;if(e)for(var r=0;r=t:i.to>t);if(l||i.from==t&&"bookmark"==s.type&&(!n||i.marker.insertLeft)){var d=null==i.from||(s.inclusiveLeft?i.from<=t:i.fromz(c.to,l.from)||0u)&&(i.inclusiveLeft||u)||p.push({from:c.from,to:l.from}),!(0ge(o,r.marker))&&(o=r.marker);return o}function ye(e){return fe(e,!0)}function be(e){return fe(e,!1)}function xe(e,t){var n=rs&&e.markedSpans,o;if(n)for(var r=0,i;rt)&&(!o||0>ge(o,i.marker))&&(o=i.marker);return o}function ve(e,t,n,o,r){var s=R(e,t),l=rs&&s.markedSpans;if(l)for(var d=0,i;d=u||0>=p&&0<=u)&&(0>=p&&(i.marker.inclusiveRight&&r.inclusiveLeft?0<=z(c.to,n):0=z(c.from,o):0>z(c.from,o))))return!0}}function ke(e){for(var t;t=ye(e);)e=t.find(-1,!0).line;return e}function Se(e){for(var t;t=be(e);)e=t.find(1,!0).line;return e}function Ce(e){for(var t,n;t=be(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function we(e,t){var n=R(e,t),o=ke(n);return n==o?t:U(o)}function Te(e,t){if(t>e.lastLine())return t;var n=R(e,t),o;if(!Ee(e,n))return t;for(;o=be(n);)n=o.find(1,!0).line;return U(n)+1}function Ee(e,t){var n=rs&&t.markedSpans;if(n)for(var o=void 0,r=0;rt.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}function _e(e,t,n,o){if(!e)return o(t,n,"ltr",0);for(var r=!1,d=0,i;dt||t==n&&i.to==t)&&(o(l(i.from,t),s(i.to,n),1==i.level?"rtl":"ltr",d),r=!0);r||o(t,n,"ltr")}function Oe(e,t,n){var o;as=null;for(var r=0,i;rt)return r;i.to==t&&(i.from!=i.to&&"before"==n?o=r:as=r),i.from==t&&(i.from!=i.to&&"before"!=n?o=r:as=r)}return null==o?as:o}function Me(e,t){var n=e.order;return null==n&&(n=e.order=is(e.text,t)),n}function De(e,t){return e._handlers&&e._handlers[t]||ss}function Re(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else{var o=e._handlers,r=o&&o[t];if(r){var i=x(r,n);-1=t.offsetWidth&&2Ii))}var n=ys?p("span","\u200B"):p("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Xe(e){if(null!=bs)return bs;var t=c(e,document.createTextNode("A\u062EA")),n=Ki(t,0,1).getBoundingClientRect(),o=Ki(t,1,2).getBoundingClientRect();return d(e),n&&n.left!=n.right&&(bs=3>o.right-n.right)}function Qe(e){if(null!=us)return us;var t=c(e,p("span","x")),o=t.getBoundingClientRect(),r=Ki(t,0,1).getBoundingClientRect();return us=1e&&l.splice(p,1,e,l[p+1],r),p+=2,i=s(e,r);if(t)if(o.opaque)l.splice(n,p-n,e,"overlay "+t),p=n+2;else for(;ne.options.maxHighlightLength&&et(e.doc.mode,o.state),i=ot(e,t,o);r&&(o.state=r),t.stateAfter=o.save(!r),t.styles=i.styles,i.classes?t.styleClasses=i.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=l(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function at(e,t,n){var o=e.doc,r=e.display;if(!o.mode.startState)return new vs(o,!0,t);var i=ut(e,t,n),s=i>o.first&&R(o,i-1).stateAfter,l=s?vs.fromSaved(o,s,i):new vs(o,nt(o.mode),i);return o.iter(i,t,function(n){it(e,n.text,l);var o=l.line;n.stateAfter=o==t-1||0==o%5||o>=r.viewFrom&&or;r++){o&&(o[0]=tt(e,n).mode);var i=e.token(t,n);if(t.pos>t.start)return i}throw new Error("Mode "+e.name+" failed to advance stream.")}function dt(e,t,n,o){var r=e.doc,i=r.mode,s;t=J(r,t);var l=R(r,t.line),d=at(e,t.line,n),c=new fs(l.text,e.options.tabSize,d),p;for(o&&(p=[]);(o||c.pose.options.maxHighlightLength?(d=!1,l&&it(e,t,o,u.pos),u.pos=t.length,h=null):h=ct(lt(n,u,o.state,m),i),m){var g=m[0].name;g&&(h="m-"+(h?g+" "+h:g))}if(!d||p!=h){for(;cr;--i){if(i<=o.first)return o.first;var d=R(o,i-1),c=d.stateAfter;if(c&&(!n||i+(c instanceof xs?c.lookAhead:0)<=o.modeFrontier))return i;var p=v(d.text,null,e.options.tabSize);(null==l||s>p)&&(l=i-1,s=p)}return l}function mt(e,t){if(e.modeFrontier=s(e.modeFrontier,t),!(e.highlightFrontiern;o--)if(r=R(e,o).stateAfter,r&&(!(r instanceof xs)||o+r.lookAheadIi&&(c=!0),e.pos+=t.length;else{u=document.createDocumentFragment();for(var h=0;;){d.lastIndex=h;var g=d.exec(t),f=g?g.index-h:t.length-h;if(f){var y=document.createTextNode(l.slice(h,h+f));Ai&&9>Ii?u.appendChild(p("span",[y])):u.appendChild(y),e.map.push(e.pos,e.pos+f,y),e.col+=f,e.pos+=f}if(!g)break;h+=f+1;var b=void 0;if("\t"==g[0]){var x=e.cm.options.tabSize,v=x-e.col%x;b=u.appendChild(p("span",S(v),"cm-tab")),b.setAttribute("role","presentation"),b.setAttribute("cm-text","\t"),e.col+=v}else"\r"==g[0]||"\n"==g[0]?(b=u.appendChild(p("span","\r"==g[0]?"\u240D":"\u2424","cm-invalidchar")),b.setAttribute("cm-text",g[0]),e.col+=1):(b=e.cm.options.specialCharPlaceholder(g[0]),b.setAttribute("cm-text",g[0]),Ai&&9>Ii?u.appendChild(p("span",[b])):u.appendChild(b),e.col+=1);e.map.push(e.pos,e.pos+1,b),e.pos++}}if(e.trailingSpace=32==l.charCodeAt(t.length-1),n||o||r||c||s){var k=n||"";o&&(k+=o),r&&(k+=r);var C=p("span",[u],k,s);return i&&(C.title=i),e.content.appendChild(C)}e.content.appendChild(u)}}function vt(e,t){if(1p&&m.from<=p));h++);if(m.to>=u)return e(n,o,r,s,l,d,c);e(n,o.slice(0,m.to-p),r,s,null,d,c),s=null,o=o.slice(m.to-p),p=m.to}}}function St(e,t,n,o){var r=!o&&n.widgetNode;r&&e.map.push(e.pos,e.pos+t,r),!o&&e.cm.display.input.needsContentAttribute&&(!r&&(r=e.content.appendChild(document.createElement("span"))),r.setAttribute("cm-marker",n.id)),r&&(e.cm.display.input.setUneditable(r),e.content.appendChild(r)),e.pos+=t,e.trailingSpace=!1}function Ct(e,t,n){var o=e.markedSpans,r=e.text,l=0;if(!o){for(var d=1;dp||E.collapsed&&T.to==p&&T.from==p)?(null!=T.to&&T.to!=p&&h>T.to&&(h=T.to,b=""),E.className&&(y+=" "+E.className),E.css&&(f=(f?f+";":"")+E.css),E.startStyle&&T.from==p&&(x+=" "+E.startStyle),E.endStyle&&T.to==h&&(C||(C=[])).push(E.endStyle,T.to),E.title&&!v&&(v=E.title),E.collapsed&&(!k||0>ge(k.marker,E))&&(k=T)):T.from>p&&h>T.from&&(h=T.from)}if(C)for(var m=0;m=c)break;for(var I=s(c,h);;){if(i){var N=p+i.length;if(!k){var L=N>I?i.slice(0,I-p):i;t.addToken(t,L,g?g+y:y,x,p+L.length==h?b:"",v,f)}if(N>=I){i=i.slice(I-p),p=I;break}p=N,x=""}i=r.slice(l,l=n[u++]),g=ft(n[u++],t.cm.options)}}}function wt(e,t,n){this.line=t,this.rest=Ce(t),this.size=this.rest?U(C(this.rest))-n+1:1,this.node=this.text=null,this.hidden=Ee(e,t)}function Tt(e,t,n){for(var o=[],r=t,i,s;rIi&&(e.node.style.zIndex=2)),e.node}function Mt(e,t){var n=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(n&&(n+=" CodeMirror-linebackground"),t.background)n?t.background.className=n:(t.background.parentNode.removeChild(t.background),t.background=null);else if(n){var o=Ot(t);t.background=o.insertBefore(p("div",null,n),o.firstChild),e.display.input.setUneditable(t.background)}}function Dt(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):yt(e,t)}function Rt(e,t){var n=t.text.className,o=Dt(e,t);t.text==t.node&&(t.node=o.pre),t.text.parentNode.replaceChild(o.pre,t.text),t.text=o.pre,o.bgClass!=t.bgClass||o.textClass!=t.textClass?(t.bgClass=o.bgClass,t.textClass=o.textClass,Pt(e,t)):n&&(t.text.className=n)}function Pt(e,t){Mt(e,t),t.line.wrapClass?Ot(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className="");var n=t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass;t.text.className=n||""}function Ft(e,t,n,o){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var r=Ot(t);t.gutterBackground=p("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?o.fixedPos:-o.gutterTotalWidth)+"px; width: "+o.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),r.insertBefore(t.gutterBackground,t.text)}var i=t.line.gutterMarkers;if(e.options.lineNumbers||i){var s=Ot(t),l=t.gutter=p("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?o.fixedPos:-o.gutterTotalWidth)+"px");if(e.display.input.setUneditable(l),s.insertBefore(l,t.text),t.line.gutterClass&&(l.className+=" "+t.line.gutterClass),!e.options.lineNumbers||i&&i["CodeMirror-linenumbers"]||(t.lineNumber=l.appendChild(p("div",j(e.options,n),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+o.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),i)for(var d=0;dn)return{map:e.measure.maps[r],cache:e.measure.caches[r],before:!0}}function Zt(e,t){t=ke(t);var n=U(t),o=e.display.externalMeasured=new wt(e.doc,t,n);o.lineN=n;var r=o.built=yt(e,o);return o.text=r.pre,c(e.display.lineMeasure,r.pre),o}function en(e,t,n,o){return rn(e,nn(e,t),n,o)}function tn(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&tt)&&(s=c-d,i=s-1,t>=c&&(l="right")),null!=i){if(r=e[o+2],d==c&&n==(r.insertLeft?"left":"right")&&(l=n),"left"==n&&0==i)for(;o&&e[o-2]==e[o-3]&&e[o-1].insertLeft;)r=e[(o-=3)+2],l="left";if("right"==n&&i==c-d)for(;ou;u++){for(;l&&_(t.line.text.charAt(r.coverStart+l));)--l;for(;r.coverStart+dIi&&0==l&&d==r.coverEnd-r.coverStart?s.parentNode.getBoundingClientRect():sn(Ki(s,l,d).getClientRects(),o),p.left||p.right||0==l)break;d=l,--l,c="right"}Ai&&11>Ii&&(p=dn(e.display.measure,p))}else{0Ii&&!l&&(!p||!p.left&&!p.right)){var h=s.parentNode.getClientRects()[0];p=h?{left:h.left,right:h.left+Ln(e.display),top:h.top,bottom:h.bottom}:As}for(var g=p.top-t.rect.top,f=p.bottom-t.rect.top,y=t.view.measure.heights,b=0;b=o.text.length?(c=o.text.length,p="before"):0>=c&&(c=0,p="after"),!d)return s("before"==p?c-1:c,"before"==p);var u=Oe(d,c,p),m=as,h=l(c,u,"before"==p);return null!=m&&(h.other=l(c,m,"before"!=p)),h}function vn(e,t){var n=0;t=J(e.doc,t),e.options.lineWrapping||(n=Ln(e.display)*t.ch);var o=R(e.doc,t.line),r=Ie(o)+Ht(e.display);return{left:n,right:n,top:r,bottom:r+o.height}}function kn(e,t,n,o,r){var i=W(e,t,n);return i.xRel=r,o&&(i.outside=!0),i}function Sn(e,t,n){var o=e.doc;if(n+=e.display.viewOffset,0>n)return kn(o.first,0,null,!0,-1);var r=V(o,n),i=o.first+o.size-1;if(r>i)return kn(o.first+o.size-1,R(o,i).text.length,null,!0,1);0>t&&(t=0);for(var s=R(o,r);;){var l=En(e,s,r,t,n),d=xe(s,l.ch+(0o},i,r),{begin:i,end:r}}function wn(e,t,n,o){n||(n=nn(e,t));var r=fn(e,t,rn(e,n,o),"line").top;return Cn(e,t,n,r)}function Tn(e,t,n,o){return!(e.bottom<=n)&&(!!(e.top>n)||(o?e.left:e.right)>t)}function En(e,t,n,o,r){r-=Ie(t);var i=nn(e,t),s=gn(t),l=0,d=t.text.length,c=!0,p=Me(t,e.doc.direction);if(p){var u=(e.options.lineWrapping?In:An)(e,t,n,i,p,o,r);c=1!=u.level,l=c?u.from:u.to-1,d=c?u.to:u.from-1}var m=null,h=null,g=M(function(t){var n=rn(e,i,t);return(n.top+=s,n.bottom+=s,!!Tn(n,o,r,!1))&&(n.top<=r&&n.left<=o&&(m=t,h=n),!0)},l,d),f=!1,y,b;if(h){var x=o-h.left=k.bottom}return g=O(t.text,g,1),kn(n,g,b,f,o-y)}function An(e,t,n,o,r,s,l){var i=M(function(d){var i=r[d],c=1!=i.level;return Tn(xn(e,W(n,c?i.to:i.from,c?"before":"after"),"line",t,o),s,l,!0)},0,r.length-1),d=r[i];if(0l&&(d=r[i-1])}return d}function In(e,t,n,o,r,d,c){var u=Cn(e,t,o,c),m=u.begin,h=u.end;/\s/.test(t.text.charAt(h-1))&&h--;for(var g=null,f=null,y=0,i;y=h||i.to<=m)){var p=1!=i.level,b=rn(e,o,p?s(h,i.to)-1:l(m,i.from)).right,x=bx)&&(g=i,f=x)}return g||(g=r[r.length-1]),g.fromh&&(g={from:g.from,to:h,level:g.level}),g}function Nn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Ns){Ns=p("pre");for(var t=0;49>t;++t)Ns.appendChild(document.createTextNode("x")),Ns.appendChild(p("br"));Ns.appendChild(document.createTextNode("x"))}c(e.measure,Ns);var n=Ns.offsetHeight/50;return 3=e.display.viewTo)return null;if(t-=e.display.viewFrom,0>t)return null;for(var n=e.display.view,o=0;ot)return o}function Fn(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Bn(e,t){void 0===t&&(t=!0);for(var n=e.doc,o={},r=o.cursors=document.createDocumentFragment(),s=o.selection=document.createDocumentFragment(),l=0;l=e.display.viewTo||i.to().linet&&(t=0),t=o(t),r=o(r),c.appendChild(p("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==n?h-e:n)+"px;\n height: "+(r-t)+"px"))}function i(t,n,o){function s(n,o){return bn(e,W(t,n),"div",l,o)}function i(t,n,o){var r=wn(e,l,null,t),i="ltr"==n==("after"==o)?"left":"right",d="after"==o?r.begin:r.end-(/\s/.test(l.text.charAt(r.end-1))?2:1);return s(d,i)[i]}var l=R(d,t),c=l.text.length,p=Me(l,d.direction),u,f;return _e(p,n||0,null==o?c:o,function(e,t,l,d){var y="ltr"==l,b=s(e,y?"left":"right"),x=s(t-1,y?"right":"left"),v=null==n&&0==e,k=null==o&&t==c,S=0==d,C=!p||d==p.length-1;if(3>=x.top-b.top){var w=(g?v:k)&&S,T=(g?k:v)&&C,E=w?m:(y?b:x).left,A=T?h:(y?x:b).right;r(E,b.top,A-E,b.bottom)}else{var I,N,L,_;y?(I=g&&v&&S?m:b.left,N=g?h:i(e,l,"before"),L=g?m:i(t,l,"after"),_=g&&k&&C?h:x.right):(I=g?i(e,l,"before"):m,N=!g&&v&&S?h:b.right,L=!g&&k&&C?m:x.left,_=g?i(t,l,"after"):h),r(I,b.top,N-I,b.bottom),b.bottomVn(b,u))&&(u=b),0>Vn(x,u)&&(u=x),(!f||0>Vn(b,f))&&(f=b),0>Vn(x,f)&&(f=x)}),{start:u,end:f}}var s=e.display,d=e.doc,c=document.createDocumentFragment(),u=Gt(e.display),m=u.left,h=l(s.sizerWidth,Qt(e)-s.sizer.offsetLeft)-u.right,g="ltr"==d.direction,f=t.from(),y=t.to();if(f.line==y.line)i(f.line,f.ch,y.ch);else{var b=R(d,f.line),x=R(d,y.line),v=ke(b)==ke(x),k=i(f.line,f.ch,v?b.text.length+1:null).end,S=i(y.line,v?0:null,y.ch).start;v&&(k.tope.options.cursorBlinkRate&&(t.cursorDiv.style.visibility="hidden")}}function Wn(e){e.state.focused||(e.display.input.focus(),Hn(e))}function zn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Kn(e))},100)}function Hn(t,n){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1),"nocursor"==t.options.readOnly||(!t.state.focused&&(Pe(t,"focus",t,n),t.state.focused=!0,g(t.display.wrapper,"CodeMirror-focused"),!t.curOp&&t.display.selForContextMenu!=t.doc.sel&&(t.display.input.reset(),Ni&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),jn(t))}function Kn(t,n){t.state.delayingBlurEvent||(t.state.focused&&(Pe(t,"blur",t,n),t.state.focused=!1,Hi(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function Gn(e){for(var t=e.display,n=t.lineDiv.offsetTop,o=0;oIi){var s=r.node.offsetTop+r.node.offsetHeight;i=s-n,n=s}else{var l=r.node.getBoundingClientRect();i=l.bottom-l.top}var d=r.line.height-i;if(2>i&&(i=Nn(t)),(.005d)&&(B(r.line,i),Xn(r.line),r.rest))for(var c=0;c=c&&(d=V(t,Ie(R(t,u))-e.wrapper.clientHeight),c=u)}return{from:d,to:l(c,d+1)}}function Jn(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var o=On(t)-t.scroller.scrollLeft+e.doc.scrollLeft,r=t.gutters.offsetWidth,s=o+"px",l=0;lt.top+o.top?r=!0:t.bottom+o.top>(window.innerHeight||document.documentElement.clientHeight)&&(r=!1),null!=r&&!Ri){var i=p("div","\u200B",null,"position: absolute;\n top: "+(t.top-n.viewOffset-Ht(e.display))+"px;\n height: "+(t.bottom-t.top+Xt(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+l(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(i),i.scrollIntoView(r),e.display.lineSpace.removeChild(i)}}}function Zn(e,t,o,r){null==r&&(r=0);var i;e.options.lineWrapping||t!=o||(t=t.ch?W(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t,o="before"==t.sticky?W(t.line,t.ch+1,"before"):t);for(var d=0;5>d;d++){var c=!1,p=xn(e,t),u=o&&o!=t?xn(e,o):p;i={left:s(p.left,u.left),top:s(p.top,u.top)-r,right:l(p.left,u.left),bottom:l(p.bottom,u.bottom)+r};var m=no(e,i),h=e.doc.scrollTop,g=e.doc.scrollLeft;if(null!=m.scrollTop&&(lo(e,m.scrollTop),1t.top&&(t.top=0);var r=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,i=Jt(e),d={};t.bottom-t.top>i&&(t.bottom=t.top+i);var c=e.doc.height+Kt(n),p=t.topc-o;if(t.topr+i){var m=s(t.top,(u?c:t.bottom)-i);m!=r&&(d.scrollTop=m)}var h=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft,g=Qt(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0),f=t.right-t.left>g;return f&&(t.right=t.left+g),10>t.left?d.scrollLeft=0:t.leftg+h-3&&(d.scrollLeft=t.right+(f?0:10)-g),d}function to(e,t){null==t||(io(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function oo(e){io(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function ro(e,t,n){(null!=t||null!=n)&&io(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function ao(e,t){io(e),e.curOp.scrollToPos=t}function io(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var n=vn(e,t.from),o=vn(e,t.to);so(e,n,o,t.margin)}}function so(e,t,n,o){var r=no(e,{left:s(t.left,n.left),top:s(t.top,n.top)-o,right:l(t.right,n.right),bottom:l(t.bottom,n.bottom)+o});ro(e,r.scrollLeft,r.scrollTop)}function lo(e,t){2>n(e.doc.scrollTop-t)||(!Ci&&qo(e,{top:t}),co(e,t,!0),Ci&&qo(e),Do(e,100))}function co(e,t,n){t=s(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function po(e,t,o,r){t=s(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(o?t==e.doc.scrollLeft:2>n(e.doc.scrollLeft-t))&&!r||(e.doc.scrollLeft=t,Jn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function uo(e){var t=e.display,n=t.gutters.offsetWidth,r=o(e.doc.height+Kt(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Xt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}function mo(e,t){t||(t=uo(e));var n=e.display.barWidth,o=e.display.barHeight;ho(e,t);for(var r=0;4>r&&n!=e.display.barWidth||o!=e.display.barHeight;r++)n!=e.display.barWidth&&e.options.lineWrapping&&Gn(e),ho(e,uo(e)),n=e.display.barWidth,o=e.display.barHeight}function ho(e,t){var n=e.display,o=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=o.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=o.bottom)+"px",n.heightForcer.style.borderBottom=o.bottom+"px solid transparent",o.right&&o.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=o.bottom+"px",n.scrollbarFiller.style.width=o.right+"px"):n.scrollbarFiller.style.display="",o.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=o.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}function go(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&Hi(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new _s[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),ls(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,n){"horizontal"==n?po(e,t):lo(e,t)},e),e.display.scrollbars.addClass&&g(e.display.wrapper,e.display.scrollbars.addClass)}function fo(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Os},Et(e.curOp)}function yo(e){var t=e.curOp;It(t,function(e){for(var t=0;t=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Ms(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function vo(e){e.updatedDisplay=e.mustUpdate&&Uo(e.cm,e.update)}function ko(e){var t=e.cm,n=t.display;e.updatedDisplay&&Gn(t),e.barMeasure=uo(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=en(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=l(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Xt(t)+t.display.barWidth),e.maxScrollLeft=l(0,n.sizer.offsetLeft+e.adjustWidthTo-Qt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function So(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeftt)&&(r.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=r.viewTo)rs&&we(e.doc,t)r.viewFrom?Lo(e):(r.viewFrom+=o,r.viewTo+=o);else if(t<=r.viewFrom&&n>=r.viewTo)Lo(e);else if(t<=r.viewFrom){var i=_o(e,n,n+o,1);i?(r.view=r.view.slice(i.index),r.viewFrom=i.lineN,r.viewTo+=o):Lo(e)}else if(n>=r.viewTo){var s=_o(e,t,t,-1);s?(r.view=r.view.slice(0,s.index),r.viewTo=s.lineN):Lo(e)}else{var l=_o(e,t,t,-1),d=_o(e,n,n+o,1);l&&d?(r.view=r.view.slice(0,l.index).concat(Tt(e,l.lineN,d.lineN)).concat(r.view.slice(d.index)),r.viewTo+=o):Lo(e)}var c=r.externalMeasured;c&&(n=r.lineN&&t=o.viewTo)){var i=o.view[Pn(e,t)];if(null!=i.node){var s=i.changes||(i.changes=[]);-1==x(s,n)&&s.push(n)}}}function Lo(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function _o(e,t,o,r){var s=Pn(e,t),l=e.display.view,d;if(!rs||o==e.doc.first+e.doc.size)return{index:s,lineN:o};for(var c=e.display.viewFrom,n=0;nr?0:l.length-1))return null;o+=r*l[s-(0>r?1:0)].size,s+=r}return{index:s,lineN:o}}function Oo(e,t,n){var o=e.display,r=o.view;0==r.length||t>=o.viewTo||n<=o.viewFrom?(o.view=Tt(e,t,n),o.viewFrom=t):(o.viewFrom>t?o.view=Tt(e,t,o.viewFrom).concat(o.view):o.viewFromn&&(o.view=o.view.slice(0,Pn(e,n)))),o.viewTo=n}function Mo(e){for(var t=e.display.view,n=0,o=0,r;o=e.display.viewTo)){var n=+new Date+e.options.workTime,o=at(e,t.highlightFrontier),r=[];t.iter(o.line,s(t.first+t.size,e.display.viewTo+500),function(s){if(o.line>=e.display.viewFrom){var l=s.styles,d=s.text.length>e.options.maxHighlightLength?et(t.mode,o.state):null,c=ot(e,s,o,!0);d&&(o.state=d),s.styles=c.styles;var p=s.styleClasses,u=c.classes;u?s.styleClasses=u:p&&(s.styleClasses=null);for(var m=!l||l.length!=s.styles.length||p!=u&&(!p||!u||p.bgClass!=u.bgClass||p.textClass!=u.textClass),h=0;!m&&hn?(Do(e,e.options.workDelay),!0):void 0}),t.highlightFrontier=o.line,t.modeFrontier=l(t.modeFrontier,o.line),r.length&&wo(e,function(){for(var t=0;t=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Mo(e))return!1;$n(e)&&(Lo(e),t.dims=_n(e));var r=o.first+o.size,i=l(t.visible.from-e.options.viewportMargin,o.first),c=s(r,t.visible.to+e.options.viewportMargin);n.viewFromi-n.viewFrom&&(i=l(o.first,n.viewFrom)),n.viewTo>c&&20>n.viewTo-c&&(c=s(r,n.viewTo)),rs&&(i=we(e.doc,i),c=Te(e.doc,c));var p=i!=n.viewFrom||c!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;Oo(e,i,c),n.viewOffset=Ie(R(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var u=Mo(e);if(!p&&0==u&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var m=Fo(e);return 4=e.display.viewFrom&&t.visible.to<=e.display.viewTo))break;if(!Uo(e,t))break;Gn(e);var r=uo(e);Fn(e),mo(e,r),zo(e,r),t.force=!1}t.signal(e,"update",e),(e.display.viewFrom!=e.display.reportedViewFrom||e.display.viewTo!=e.display.reportedViewTo)&&(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function qo(e,t){var n=new Ms(e,t);if(Uo(e,n)){Gn(e),Vo(e,n);var o=uo(e);Fn(e),mo(e,o),zo(e,o),n.finish()}}function jo(e,t,n){function o(t){var n=t.nextSibling;return Ni&&Ui&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var r=e.display,s=e.options.lineNumbers,l=r.lineDiv,c=l.firstChild,p=r.view,u=r.viewFrom,m=0,i;mc.clientWidth,u=c.scrollHeight>c.clientHeight;if(o&&p||r&&u){if(r&&Ui&&Ni)outer:for(var m=n.target,h=d.view;m!=c;m=m.parentNode)for(var g=0;gi?f=l(0,f+i-50):y=s(t.doc.height,y+i+50),qo(t,{top:f,bottom:y})}20>Ds&&(null==d.wheelStartX?(d.wheelStartX=c.scrollLeft,d.wheelStartY=c.scrollTop,d.wheelDX=o,d.wheelDY=r,setTimeout(function(){if(null!=d.wheelStartX){var e=c.scrollLeft-d.wheelStartX,t=c.scrollTop-d.wheelStartY,n=t&&d.wheelDY&&t/d.wheelDY||e&&d.wheelDX&&e/d.wheelDX;d.wheelStartX=d.wheelStartY=null,n&&(Rs=(Rs*Ds+n)/(Ds+1),++Ds)}},200)):(d.wheelDX+=o,d.wheelDY+=r))}}function Jo(e,t){var n=e[t];e.sort(function(e,t){return z(e.from(),t.from())}),t=x(e,n);for(var o=1;oz(e,t.from))return e;if(0>=z(e,t.to))return Yo(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,o=e.ch;return e.line==t.to.line&&(o+=Yo(t).ch-t.to.ch),W(n,o)}function er(e,t){for(var n=[],o=0,r;oz(p.head,p.anchor);o[l]=new Fs(u?c:d,u?d:c)}else o[l]=new Fs(d,d)}return new Ps(o,e.sel.primIndex)}function or(e){e.doc.mode=Ye(e.options,e.doc.modeOption),rr(e)}function rr(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,Do(e,100),e.state.modeGen++,e.curOp&&Io(e)}function ar(e,t){return 0==t.from.ch&&0==t.to.ch&&""==C(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function ir(e,t,o,n){function r(e){return o?o[e]:null}function i(e,o,r){ht(e,o,r,n),Nt(e,"change",e,t)}function s(e,t){for(var o=[],s=e;si-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(s=hr(r,r.lastOp==o)))l=C(s.changes),0==z(t.from,t.to)&&0==z(t.from,l.to)?l.to=Yo(t):s.changes.push(ur(e,t));else{var d=C(r.done);for(d&&d.ranges||br(e.sel,r.done),s={changes:[ur(e,t)],generation:r.generation},r.done.push(s);r.done.length>r.undoDepth;)r.done.shift(),r.done[0].ranges||r.done.shift()}r.done.push(n),r.generation=++r.maxGeneration,r.lastModTime=r.lastSelTime=i,r.lastOp=r.lastSelOp=o,r.lastOrigin=r.lastSelOrigin=t.origin,l||Pe(e,"historyAdded")}function fr(e,t,n,o){var r=t.charAt(0);return"*"==r||"+"==r&&n.ranges.length==o.ranges.length&&n.somethingSelected()==o.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function yr(e,t,n,o){var r=e.history,i=o&&o.origin;n==r.lastSelOp||i&&r.lastSelOrigin==i&&(r.lastModTime==r.lastSelTime&&r.lastOrigin==i||fr(e,i,C(r.done),t))?r.done[r.done.length-1]=t:br(t,r.done),r.lastSelTime=+new Date,r.lastSelOrigin=i,r.lastSelOp=n,o&&!1!==o.clearRedo&&mr(r.undone)}function br(e,t){var n=C(t);n&&n.ranges&&n.equals(e)||t.push(e)}function xr(e,t,o,r){var i=t["spans_"+e.id],d=0;e.iter(l(e.first,o),s(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[d]=n.markedSpans),++d})}function vr(e){if(!e)return null;for(var t=0,n;tz(t,r);i==0>z(n,r)?i!=0>z(t,n)&&(t=n):(r=t,t=n)}return new Fs(r,t)}return new Fs(n||t,t)}function Tr(e,t,n,o,r){null==r&&(r=e.cm&&(e.cm.display.shift||e.extend)),_r(e,new Ps([wr(e.sel.primary(),t,n,r)],0),o)}function Er(e,t,n){for(var o=[],r=e.cm&&(e.cm.display.shift||e.extend),s=0;sz(t.primary().head,e.sel.primary().head)?-1:1);Mr(e,Rr(e,t,o,!0)),!(n&&!1===n.scroll)&&e.cm&&oo(e.cm)}function Mr(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Be(e.cm)),Nt(e,"cursorActivity",e))}function Dr(e){Mr(e,Rr(e,e.sel,null,!1))}function Rr(e,t,n,o){for(var r=0,i;r=t.ch:i.to>t.ch))){if(r&&(Pe(d,"beforeCursorEnter"),d.explicitlyCleared))if(!s.markedSpans)break;else{--l;continue}if(!d.atomic)continue;if(n){var c=d.find(0>o?1:-1),p=void 0;if((0>o?d.inclusiveRight:d.inclusiveLeft)&&(c=Br(e,c,-o,c&&c.line==t.line?s:null)),c&&c.line==t.line&&(p=z(c,n))&&(0>o?0>p:0o?-1:1);return(0>o?d.inclusiveLeft:d.inclusiveRight)&&(u=Br(e,u,o,u.line==t.line?s:null)),u?Pr(e,u,t,o,r):null}}return t}function Fr(e,t,n,o,r){var i=o||1,s=Pr(e,t,n,i,r)||!r&&Pr(e,t,n,i,!0)||Pr(e,t,n,-i,r)||!r&&Pr(e,t,n,-i,!0);return s?s:(e.cantEdit=!0,W(e.first,0))}function Br(e,t,n,o){return 0>n&&0==t.ch?t.line>e.first?J(e,W(t.line-1)):null:0e.lastLine())){if(t.from.linei&&(t={from:t.from,to:W(i,R(e,i).text.length),text:[t.text[0]],origin:t.origin}),t.removed=P(e,t.from,t.to),n||(n=er(e,t)),e.cm?Kr(e.cm,t,o):ir(e,t,o),Or(e,n,$i)}}function Kr(e,t,n){var o=e.doc,r=e.display,i=t.from,s=t.to,l=!1,d=i.line;e.options.lineWrapping||(d=U(ke(R(o,i.line))),o.iter(d,s.line+1,function(e){if(e==r.maxLine)return l=!0,!0})),-1r.maxLineLength&&(r.maxLine=e,r.maxLineLength=t,r.maxLineChanged=!0,l=!1)}),l&&(e.curOp.updateMaxLine=!0)),mt(o,i.line),Do(e,400);var c=t.text.length-(s.line-i.line)-1;t.full?Io(e):i.line!=s.line||1!=t.text.length||ar(e.doc,t)?Io(e,i.line,s.line+1,c):No(e,i.line,"text");var p=Ue(e,"changes"),u=Ue(e,"change");if(u||p){var m={from:i,to:s,text:t.text,removed:t.removed,origin:t.origin};u&&Nt(e,"change",e,m),p&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(m)}e.display.selForContextMenu=null}function Gr(e,t,n,o,r){if(o||(o=n),0>z(o,n)){var i;i=[o,n],n=i[0],o=i[1]}"string"==typeof t&&(t=e.splitLines(t)),qr(e,{from:n,to:o,text:t,origin:r})}function Xr(e,t,n,o){n+new Date-zs))return void ze(n);if(!(Fe(t,n)||zt(t.display,n))&&(n.dataTransfer.setData("Text",t.getSelection()),n.dataTransfer.effectAllowed="copyMove",n.dataTransfer.setDragImage&&!Mi)){var e=p("img",null,null,"position: fixed; left: 0; top: 0;");e.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",Oi&&(e.width=e.height=1,t.display.wrapper.appendChild(e),e._top=e.offsetTop),n.dataTransfer.setDragImage(e,0,0),Oi&&e.parentNode.removeChild(e)}}function da(t,n){var e=Rn(t,n);if(e){var o=document.createDocumentFragment();Un(t,e,o),t.display.dragCursor||(t.display.dragCursor=p("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),t.display.lineSpace.insertBefore(t.display.dragCursor,t.display.cursorDiv)),c(t.display.dragCursor,o)}}function ca(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function pa(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),n=0,o;n=z(i.from,C(o).to);){var s=o.pop();if(0>z(s.from,i.from)){i.from=s.from;break}}o.push(i)}wo(e,function(){for(var t=o.length-1;0<=t;t--)Gr(e.doc,"",o[t].from,o[t].to,"+delete");oo(e)})}function Ca(e,t,n){var o=O(e.text,t+n,n);return 0>o||o>e.text.length?null:o}function wa(e,t,n){var o=Ca(e,t.ch,n);return null==o?null:new W(t.line,o,0>n?"after":"before")}function Ta(e,t,n,o,r){if(e){var i=Me(n,t.doc.direction);if(i){var s=0>r?C(i):i[0],l=0>r==(1==s.level),d=l?"after":"before",c;if(0r?n.text.length-1:0;var u=rn(t,p,c).top;c=M(function(e){return rn(t,p,e).top==u},0>r==(1==s.level)?s.from:s.to-1,c),"before"==d&&(c=Ca(n,c,1))}else c=0>r?s.to:s.from;return new W(o,c,d)}}return new W(o,0>r?n.text.length:0,0>r?"before":"after")}function Ea(e,t,n,o){var r=Me(t,e.doc.direction);if(!r)return wa(t,n,o);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):0>=n.ch&&(n.ch=0,n.sticky="after");var i=Oe(r,n.ch,n.sticky),s=r[i];if("ltr"==e.doc.direction&&0==s.level%2&&(0n.ch:s.fromo,m=l(n,u?1:-1);if(null!=m&&(u?m<=s.to&&m<=c.end:m>=s.from&&m>=c.begin)){var h=u?"before":"after";return new W(n.line,m,h)}}var g=function(e,t,o){for(var i=function(e,t){return t?new W(n.line,l(e,1),"before"):new W(n.line,e,"after")};0<=e&&eIi&&27==t.keyCode&&(t.returnValue=!1);var n=t.keyCode;e.display.shift=16==n||t.shiftKey;var o=Da(e,t);Oi&&(Zs=o?n:null,!o&&88==n&&!ps&&(Ui?t.metaKey:t.ctrlKey)&&e.replaceSelection("",null,"cut")),18!=n||/\bCodeMirror-crosshair\b/.test(e.display.lineDiv.className)||Fa(e)}}function Fa(e){function t(o){18!=o.keyCode&&o.altKey||(Hi(n,"CodeMirror-crosshair"),Re(document,"keyup",t),Re(document,"mouseover",t))}var n=e.display.lineDiv;g(n,"CodeMirror-crosshair"),ls(document,"keyup",t),ls(document,"mouseover",t)}function Ba(t){16==t.keyCode&&(this.doc.sel.shift=!1),Fe(this,t)}function Ua(t){var e=this;if(!(zt(e.display,t)||Fe(e,t)||t.ctrlKey&&!t.altKey||Ui&&t.metaKey)){var n=t.keyCode,o=t.charCode;if(Oi&&n==Zs)return Zs=null,void qe(t);if(!(Oi&&(!t.which||10>t.which)&&Da(e,t))){var r=i(null==o?n:o);"\b"==r||Ra(e,t,r)||e.display.input.onKeyPress(t)}}}function Va(e,t){var n=+new Date;return al&&al.compare(n,e,t)?(rl=al=null,"triple"):rl&&rl.compare(n,e,t)?(al=new el(n,e,t),rl=null,"double"):(rl=new el(n,e,t),al=null,"single")}function qa(t){var e=this,n=e.display;if(!(Fe(e,t)||n.activeTouch&&n.input.supportsTouch())){if(n.input.ensurePolled(),n.shift=t.shiftKey,zt(n,t))return void(Ni||(n.scroller.draggable=!1,setTimeout(function(){return n.scroller.draggable=!0},100)));if(!Ja(e,t)){var o=Rn(e,t),r=Ke(t),i=o?Va(o,r):"single";window.focus(),1==r&&e.state.selectingText&&e.state.selectingText(t),o&&ja(e,r,o,i,t)||(1==r?o?za(e,o,i,t):He(t)==n.scroller&&qe(t):2==r?(o&&Tr(e.doc,o),setTimeout(function(){return n.input.focus()},20)):3==r&&(zi?$a(e,t):zn(e)))}}}function ja(e,t,n,o,r){var i="Click";return"double"==o?i="Double"+i:"triple"==o&&(i="Triple"+i),i=(1==t?"Left":2==t?"Middle":"Right")+i,Oa(e,xa(i,r),r,function(t){if("string"==typeof t&&(t=$s[t]),!t)return!1;var o=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),o=t(e,n)!=Ji}finally{e.state.suppressEdits=!1}return o})}function Wa(e,t,n){var o=e.getOption("configureMouse"),r=o?o(e,t,n):{};if(null==r.unit){var i=Vi?n.shiftKey&&n.metaKey:n.altKey;r.unit=i?"rectangle":"single"==t?"char":"double"==t?"word":"line"}return(null==r.extend||e.doc.extend)&&(r.extend=e.doc.extend||n.shiftKey),null==r.addNew&&(r.addNew=Ui?n.metaKey:n.ctrlKey),null==r.moveOnDrag&&(r.moveOnDrag=Ui?!n.altKey:!n.ctrlKey),r}function za(e,t,n,o){Ai?setTimeout(y(Wn,e),0):e.curOp.focus=h();var r=Wa(e,n,o),i=e.doc.sel,s;e.options.dragDrop&&on&&!e.isReadOnly()&&"single"==n&&-1<(s=i.contains(t))&&(0>z((s=i.ranges[s]).from(),t)||0t.xRel)?Ha(e,o,t,r):Ga(e,o,t,r)}function Ha(t,e,o,r){var i=t.display,s=!1,l=To(t,function(n){Ni&&(i.scroller.draggable=!1),t.state.draggingText=!1,Re(i.wrapper.ownerDocument,"mouseup",l),Re(i.wrapper.ownerDocument,"mousemove",d),Re(i.scroller,"dragstart",c),Re(i.scroller,"drop",l),s||(qe(n),!r.addNew&&Tr(t.doc,o,null,null,r.extend),Ni||Ai&&9==Ii?setTimeout(function(){i.wrapper.ownerDocument.body.focus(),i.input.focus()},20):i.input.focus())}),d=function(t){s=s||10<=n(e.clientX-t.clientX)+n(e.clientY-t.clientY)},c=function(){return s=!0};Ni&&(i.scroller.draggable=!0),t.state.draggingText=l,l.copy=!r.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),ls(i.wrapper.ownerDocument,"mouseup",l),ls(i.wrapper.ownerDocument,"mousemove",d),ls(i.scroller,"dragstart",c),ls(i.scroller,"drop",l),zn(t),setTimeout(function(){return i.input.focus()},20)}function Ka(e,t,n){if("char"==n)return new Fs(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new Fs(W(t.line,0),J(e.doc,W(t.line+1,0)));var o=n(e,t);return new Fs(o.from,o.to)}function Ga(t,e,n,o){function r(e){if(0!=z(b,e))if(b=e,"rectangle"==o.unit){for(var r=[],i=t.options.tabSize,d=v(R(p,n.line).text,n.ch,i),c=v(R(p,e.line).text,e.ch,i),m=s(d,c),h=l(d,c),y=s(n.line,e.line),x=s(t.lastLine(),l(n.line,e.line));y<=x;y++){var S=R(p,y).text,C=k(S,m,i);m==h?r.push(new Fs(W(y,C),W(y,C))):S.length>C&&r.push(new Fs(W(y,C),W(y,k(S,h,i))))}r.length||r.push(new Fs(n,n)),_r(p,Jo(u.ranges.slice(0,f).concat(r),f),{origin:"*mouse",scroll:!1}),t.scrollIntoView(e)}else{var w=g,T=Ka(t,e,o.unit),E=w.anchor,A;0=l.to||s.linex.bottom?20:0;d&&setTimeout(To(t,function(){S!=e||(c.scroller.scrollTop+=d,i(n))}),50)}}function d(n){t.state.selectingText=!1,S=Infinity,qe(n),c.input.focus(),Re(c.wrapper.ownerDocument,"mousemove",C),Re(c.wrapper.ownerDocument,"mouseup",w),p.history.lastSelOrigin=null}var c=t.display,p=t.doc;qe(e);var u=p.sel,m=u.ranges,g,f;if(o.addNew&&!o.extend?(f=p.sel.contains(n),g=-1u:0=r(t.display.gutters.getBoundingClientRect().right))return!1;o&&qe(n);var d=t.display,c=d.lineDiv.getBoundingClientRect();if(l>c.bottom||!Ue(t,e))return We(n);l-=c.top-d.viewOffset;for(var p=0,i;p=s){var u=V(t.doc,l),m=t.options.gutters[p];return Pe(t,e,t,u,m,n),We(n)}}function Ja(t,n){return Qa(t,n,"gutterClick",!0)}function $a(t,n){zt(t.display,n)||Ya(t,n)||Fe(t,n,"contextmenu")||t.display.input.onContextMenu(n)}function Ya(t,n){return!!Ue(t,"gutterContextMenu")&&Qa(t,n,"gutterContextMenu",!1)}function Za(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),un(e)}function ei(e){Ho(e),Io(e),Jn(e)}function ti(e,t,n){if(!t!=!(n&&n!=tl)){var o=e.display.dragFunctions,r=t?ls:Re;r(e.display.scroller,"dragstart",o.start),r(e.display.scroller,"dragenter",o.enter),r(e.display.scroller,"dragover",o.over),r(e.display.scroller,"dragleave",o.leave),r(e.display.scroller,"drop",o.drop)}}function ni(e){e.options.lineWrapping?(g(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(Hi(e.display.wrapper,"CodeMirror-wrap"),Le(e)),Dn(e),Io(e),un(e),setTimeout(function(){return mo(e)},100)}function oi(e,t){var n=this;if(!(this instanceof oi))return new oi(e,t);this.options=t=t?b(t):{},b(nl,t,!1),Ko(t);var o=t.value;"string"==typeof o&&(o=new Ws(o,t.mode,null,t.lineSeparator,t.direction)),this.doc=o;var r=new oi.inputStyles[t.inputStyle](this),s=this.display=new D(e,o,r);for(var l in s.wrapper.CodeMirror=this,Ho(this),Za(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),go(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new Xi,keySeq:null,specialChars:null},t.autofocus&&!Bi&&s.input.focus(),Ai&&11>Ii&&setTimeout(function(){return n.display.input.reset(!0)},20),ri(this),ua(),fo(this),this.curOp.forceUpdate=!0,lr(this,o),t.autofocus&&!Bi||this.hasFocus()?setTimeout(y(Hn,this),20):Kn(this),ol)ol.hasOwnProperty(l)&&ol[l](n,t[l],tl);$n(this),t.finishInit&&t.finishInit(this);for(var d=0;d=e.radiusX&&1>=e.radiusY}function r(e,t){if(null==t.left)return!0;var n=t.left-e.left,o=t.top-e.top;return 400Ii?ls(i.scroller,"dblclick",To(t,function(n){if(!Fe(t,n)){var e=Rn(t,n);if(!(!e||Ja(t,n)||zt(t.display,n))){qe(n);var o=t.findWordAt(e);Tr(t.doc,o.anchor,o.head)}}})):ls(i.scroller,"dblclick",function(n){return Fe(t,n)||qe(n)}),zi||ls(i.scroller,"contextmenu",function(n){return $a(t,n)});var s={end:0},l;ls(i.scroller,"touchstart",function(n){if(!Fe(t,n)&&!o(n)&&!Ja(t,n)){i.input.ensurePolled(),clearTimeout(l);var e=+new Date;i.activeTouch={start:e,moved:!1,prev:300>=e-s.end?s:null},1==n.touches.length&&(i.activeTouch.left=n.touches[0].pageX,i.activeTouch.top=n.touches[0].pageY)}}),ls(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),ls(i.scroller,"touchend",function(o){var e=i.activeTouch;if(e&&!zt(i,o)&&null!=e.left&&!e.moved&&300>new Date-e.start){var s=t.coordsChar(i.activeTouch,"page"),l;l=!e.prev||r(e,e.prev)?new Fs(s,s):!e.prev.prev||r(e,e.prev.prev)?t.findWordAt(s):new Fs(W(s.line,0),J(t.doc,W(s.line+1,0))),t.setSelection(l.anchor,l.head),t.focus(),qe(o)}n()}),ls(i.scroller,"touchcancel",n),ls(i.scroller,"scroll",function(){i.scroller.clientHeight&&(lo(t,i.scroller.scrollTop),po(t,i.scroller.scrollLeft,!0),Pe(t,"scroll",t))}),ls(i.scroller,"mousewheel",function(n){return Qo(t,n)}),ls(i.scroller,"DOMMouseScroll",function(n){return Qo(t,n)}),ls(i.wrapper,"scroll",function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(n){Fe(t,n)||ze(n)},over:function(n){Fe(t,n)||(da(t,n),ze(n))},start:function(n){return la(t,n)},drop:To(t,sa),leave:function(n){Fe(t,n)||ca(t)}};var e=i.input.getField();ls(e,"keyup",function(n){return Ba.call(t,n)}),ls(e,"keydown",To(t,Pa)),ls(e,"keypress",To(t,Ua)),ls(e,"focus",function(n){return Hn(t,n)}),ls(e,"blur",function(n){return Kn(t,n)})}function ai(e,t,n,o){var s=e.doc,d;null==n&&(n="add"),"smart"==n&&(s.mode.indent?d=at(e,t).state:n="prev");var c=e.options.tabSize,p=R(s,t),u=v(p.text,null,c);p.stateAfter&&(p.stateAfter=null);var m=p.text.match(/^\s*/)[0],h;if(!o&&!/\S/.test(p.text))h=0,n="not";else if("smart"==n&&(h=s.mode.indent(d,p.text.slice(m.length),p.text),h==Ji||150s.first?h=v(R(s,t-1).text,null,c):h=0:"add"==n?h=u+e.options.indentUnit:"subtract"==n?h=u-e.options.indentUnit:"number"==typeof n&&(h=u+n),h=l(0,h);var g="",f=0;if(e.options.indentWithTabs)for(var y=r(h/c);y;--y)f+=c,g+="\t";if(f=e.first+e.size?!1:(t=new W(o,t.ch,t.sticky),c=R(e,o))}function s(o){var s;if(s=r?Ea(e.cm,c,t,n):wa(c,t,n),null!=s)t=s;else if(!o&&i())t=Ta(r,e.cm,c,t.line,n);else return!1;return!0}var l=t,d=n,c=R(e,t.line);if("char"==o)s();else if("column"==o)s(!0);else if("word"==o||"group"==o)for(var p=null,u="group"==o,m=e.cm&&e.cm.getHelper(t,"wordChars"),h=!0;;h=!1){if(0>n&&!s(!h))break;var g=c.text.charAt(t.ch)||"\n",f=N(g,m)?"w":u&&"\n"==g?"n":!u||/\s/.test(g)?null:"p";if(!u||h||f||(f="s"),p&&p!=f){0>n&&(n=1,s(),t.sticky="after");break}if(f&&(p=f),0n?0>=d:d>=r.height){u.hitSide=!0;break}d+=5*n}return u}function gi(e,t){var n=tn(e,t.line);if(!n||n.hidden)return null;var o=R(e.doc,t.line),r=Yt(n,o,t.line),i=Me(o,e.doc.direction),s="left";if(i){var l=Oe(i,t.ch);s=l%2?"right":"left"}var d=an(r.map,t.ch,s);return d.offset="right"==d.collapse?d.end:d.start,d}function fi(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function yi(e,t){return t&&(e.bad=!0),e}function bi(e,t,n,o,r){function i(e){return function(t){return t.id==e}}function s(){p&&(c+=u,m&&(c+=u),p=m=!1)}function l(e){e&&(s(),c+=e)}function d(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(n)return void l(n);var c=t.getAttribute("cm-marker"),h;if(c){var g=e.findMarks(W(o,0),W(r+1,0),i(+c));return void(g.length&&(h=g[0].find(0))&&l(P(e.doc,h.from,h.to).join(u)))}if("false"==t.getAttribute("contenteditable"))return;var f=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;f&&s();for(var y=0;yr?c.map:p[r];for(var s=0,l;sr?e.line:e.rest[r]),u=i[s]+o;return(0>o||l!=t)&&(u=i[s+(o?1:0)]),W(d,u)}}}var r=e.text.firstChild,i=!1;if(!t||!m(r,t))return yi(W(U(e.line),0),!0);if(t==r&&(i=!0,t=r.childNodes[n],n=0,!t)){var s=e.rest?C(e.rest):e.line;return yi(W(U(s),s.text.length),i)}var l=3==t.nodeType?t:null,d=t;for(l||1!=t.childNodes.length||3!=t.firstChild.nodeType||(l=t.firstChild,n&&(n=l.nodeValue.length));d.parentNode!=r;)d=d.parentNode;var c=e.measure,p=c.maps,u=o(l,d,n);if(u)return yi(u,i);for(var h=d.nextSibling,g=l?l.nodeValue.length-n:0;h;h=h.nextSibling){if(u=o(h,h.firstChild,0),u)return yi(W(u.line,u.ch-g),i);g+=h.textContent.length}for(var f=d.previousSibling,y=n;f;f=f.previousSibling){if(u=o(f,f.firstChild,-1),u)return yi(W(u.line,u.ch+y),i);y+=f.textContent.length}}var ki=navigator.userAgent,Si=navigator.platform,Ci=/gecko\/\d/i.test(ki),wi=/MSIE \d/.test(ki),Ti=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(ki),Ei=/Edge\/(\d+)/.exec(ki),Ai=wi||Ti||Ei,Ii=Ai&&(wi?document.documentMode||6:+(Ei||Ti)[1]),Ni=!Ei&&/WebKit\//.test(ki),Li=Ni&&/Qt\/\d+\.\d+/.test(ki),_i=!Ei&&/Chrome\//.test(ki),Oi=/Opera\//.test(ki),Mi=/Apple Computer/.test(navigator.vendor),Di=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(ki),Ri=/PhantomJS/.test(ki),Pi=!Ei&&/AppleWebKit/.test(ki)&&/Mobile\/\w+/.test(ki),Fi=/Android/.test(ki),Bi=Pi||Fi||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(ki),Ui=Pi||/Mac/.test(Si),Vi=/\bCrOS\b/.test(ki),qi=/win/i.test(Si),ji=Oi&&ki.match(/Version\/(\d*\.\d*)/);ji&&(ji=+ji[1]),ji&&15<=ji&&(Oi=!1,Ni=!0);var Wi=Ui&&(Li||Oi&&(null==ji||12.11>ji)),zi=Ci||Ai&&9<=Ii,Hi=function(t,n){var o=t.className,r=e(n).exec(o);if(r){var i=o.slice(r.index+r[0].length);t.className=o.slice(0,r.index)+(i?r[1]+i:"")}},Ki;Ki=document.createRange?function(e,t,n,o){var i=document.createRange();return i.setEnd(o||e,n),i.setStart(e,t),i}:function(e,t,n){var o=document.body.createTextRange();try{o.moveToElementText(e.parentNode)}catch(t){return o}return o.collapse(!0),o.moveEnd("character",n),o.moveStart("character",t),o};var Gi=function(e){e.select()};Pi?Gi=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:Ai&&(Gi=function(e){try{e.select()}catch(e){}});var Xi=function(){this.id=null};Xi.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Qi=30,Ji={toString:function(){return"CodeMirror.Pass"}},$i={scroll:!1},Yi={origin:"*mouse"},Zi={origin:"+move"},es=[""],ts=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ns=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,os=!1,rs=!1,as=null,is=function(){function e(e){return 247>=e?n.charAt(e):1424<=e&&1524>=e?"R":1536<=e&&1785>=e?o.charAt(e-1536):1774<=e&&2220>=e?"r":8192<=e&&8203>=e?"w":8204==e?"b":"L"}function t(e,t,n){this.level=e,this.from=t,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",o="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,s=/[LRr]/,l=/[Lb1n]/,d=/[1n]/;return function(n,o){var c="ltr"==o?"L":"R";if(0==n.length||"ltr"==o&&!r.test(n))return!1;for(var p=n.length,u=[],h=0;hIi)return!1;var e=p("div");return"draggable"in e||"dragDrop"in e}(),ds=3=="\n\nb".split(/\n/).length?function(e){return e.split(/\r\n?|\n/)}:function(e){for(var t=0,n=[],o=e.length,r;t<=o;){r=e.indexOf("\n",t),-1==r&&(r=e.length);var i=e.slice(t,"\r"==e.charAt(r-1)?r-1:r),s=i.indexOf("\r");-1==s?(n.push(i),t=r+1):(n.push(i.slice(0,s)),t+=s+1)}return n},cs=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(t){}return t&&t.parentElement()==e&&0!=t.compareEndPoints("StartToEnd",t)},ps=function(){var t=p("div");return!!("oncopy"in t)||(t.setAttribute("oncopy","return;"),"function"==typeof t.oncopy)}(),us=null,ms={},hs={},gs={},fs=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n},ys,bs;fs.prototype.eol=function(){return this.pos>=this.string.length},fs.prototype.sol=function(){return this.pos==this.lineStart},fs.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},fs.prototype.next=function(){if(this.post},fs.prototype.eatSpace=function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},fs.prototype.skipToEnd=function(){this.pos=this.string.length},fs.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(-1this.maxLookAhead&&(this.maxLookAhead=e),t},vs.prototype.baseToken=function(e){var t=this;if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)t.baseTokenPos+=2;var n=this.baseTokens[this.baseTokenPos+1];return{type:n&&n.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},vs.prototype.nextLine=function(){this.line++,0Ii&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")},Ns;Is.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,o=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?o+"px":"0";var r=e.viewHeight-(t?o:0);this.vert.firstChild.style.height=l(0,e.scrollHeight-e.clientHeight+r)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?o+"px":"0",this.horiz.style.left=e.barLeft+"px";var i=e.viewWidth-e.barLeft-(n?o:0);this.horiz.firstChild.style.width=l(0,e.scrollWidth-e.clientWidth+i)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&0=z(e,r.to()))return o;return-1};var Fs=function(e,t){this.anchor=e,this.head=t};Fs.prototype.from=function(){return X(this.anchor,this.head)},Fs.prototype.to=function(){return G(this.anchor,this.head)},Fs.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Yr.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=this,o=e,r;othis.size-t&&(1=this.children.length)){var e=this;do{var t=e.children.splice(e.children.length-5,5),n=new Zr(t);if(!e.parent){var o=new Zr(e.children);o.parent=e,e.children=[o,n],e=o}else{e.size-=n.size,e.height-=n.height;var r=x(e.parent.children,e);e.parent.children.splice(r+1,0,n)}n.parent=e.parent}while(10t.display.maxLineLength&&(t.display.maxLine=p,t.display.maxLineLength=u,t.display.maxLineChanged=!0)}null!=r&&t&&this.collapsed&&Io(t,r,s+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Dr(t.doc)),t&&Nt(t,"markerCleared",t,this,r,s),n&&yo(t),this.parent&&this.parent.clear()}},Vs.prototype.find=function(e,t){var n=this;null==e&&"bookmark"==this.type&&(e=1);for(var o=0,r,i;o=e.ch)&&t.push(r.marker.parent||r.marker);return t},findMarks:function(e,t,n){e=J(this,e),t=J(this,t);var o=[],r=e.line;return this.iter(e.line,t.line+1,function(s){var l=s.markedSpans;if(l)for(var d=0,i;d=i.to||null==i.from&&r!=e.line||null!=i.from&&r==t.line&&i.from>=t.ch||n&&!n(i.marker)||o.push(i.marker.parent||i.marker);++r}),o},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var o=0;oe?(o=e,!0):void(e-=i,++t)}),J(this,W(t,o))},indexFromPos:function(e){e=J(this,e);var t=e.ch;if(e.linee.ch)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+n}),t},copy:function(e){var t=new Ws(F(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.toGs;Gs++)Ks[Gs+48]=Ks[Gs+96]=Gs+"";for(var Xs=65;90>=Xs;Xs++)Ks[Xs]=i(Xs);for(var Qs=1;12>=Qs;Qs++)Ks[Qs+111]=Ks[Qs+63235]="F"+Qs;var Js={};Js.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Js.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Js.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Js.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Js["default"]=Ui?Js.macDefault:Js.pcDefault;var $s={selectAll:Ur,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),$i)},killLine:function(e){return Sa(e,function(t){if(t.empty()){var n=R(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.linee.doc.first){var s=R(e.doc,r.line-1).text;s&&(r=new W(r.line,1),e.replaceRange(i.charAt(0)+e.doc.lineSeparator()+s.charAt(s.length-1),W(r.line-1,s.length-1),r,"+transpose"))}n.push(new Fs(r,r))}e.setSelections(n)})},newlineAndIndent:function(e){return wo(e,function(){for(var t=e.listSelections(),n=t.length-1;0<=n;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var o=0;oe&&0==z(t,this.pos)&&n==this.button};var tl={toString:function(){return"CodeMirror.Init"}},nl={},ol={},rl,al;oi.defaults=nl,oi.optionHandlers=ol;var il=[];oi.defineInitHook=function(e){return il.push(e)};var sl=null,ll=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Xi,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};ll.prototype.init=function(e){function t(t){if(!Fe(r,t)){if(r.somethingSelected())ii({lineWise:!1,text:r.getSelections()}),"cut"==t.type&&r.replaceSelection("",null,"cut");else{if(!r.options.lineWiseCopyCut)return;var e=ci(r);ii({lineWise:!0,text:e.text}),"cut"==t.type&&r.operation(function(){r.setSelections(e.ranges,0,$i),r.replaceSelection("",null,"cut")})}if(t.clipboardData){t.clipboardData.clearData();var n=sl.text.join("\n");if(t.clipboardData.setData("Text",n),t.clipboardData.getData("Text")==n)return void t.preventDefault()}var s=ui(),l=s.firstChild;r.display.lineSpace.insertBefore(s,r.display.lineSpace.firstChild),l.value=sl.text.join("\n");var d=document.activeElement;Gi(l),setTimeout(function(){r.display.lineSpace.removeChild(s),d.focus(),d==i&&o.showPrimarySelection()},50)}}var n=this,o=this,r=o.cm,i=o.div=e.lineDiv;pi(i,r.options.spellcheck),ls(i,"paste",function(t){Fe(r,t)||li(t,r)||11>=Ii&&setTimeout(To(r,function(){return n.updateFromDOM()}),20)}),ls(i,"compositionstart",function(t){n.composing={data:t.data,done:!1}}),ls(i,"compositionupdate",function(t){n.composing||(n.composing={data:t.data,done:!1})}),ls(i,"compositionend",function(t){n.composing&&(t.data!=n.composing.data&&n.readFromDOMSoon(),n.composing.done=!0)}),ls(i,"touchstart",function(){return o.forceCompositionEnd()}),ls(i,"input",function(){n.composing||n.readFromDOMSoon()}),ls(i,"copy",t),ls(i,"cut",t)},ll.prototype.prepareSelection=function(){var e=Bn(this.cm,!1);return e.focus=this.cm.state.focused,e},ll.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},ll.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},ll.prototype.showPrimarySelection=function(){var e=this.getSelection(),t=this.cm,n=t.doc.sel.primary(),o=n.from(),r=n.to();if(t.display.viewTo==t.display.viewFrom||o.line>=t.display.viewTo||r.line=t.display.viewFrom&&gi(t,o)||{node:l[0].measure.map[2],offset:0},c=r.linee.firstLine()&&(o=W(o.line-1,R(e.doc,o.line-1).length)),r.ch==R(e.doc,r.line).text.length&&r.linet.viewTo-1)return!1;var i,l,d;o.line==t.viewFrom||0==(i=Pn(e,o.line))?(l=U(t.view[0].line),d=t.view[0].node):(l=U(t.view[i].line),d=t.view[i-1].node.nextSibling);var c=Pn(e,r.line),p,u;if(c==t.view.length-1?(p=t.viewTo-1,u=t.lineDiv.lastChild):(p=U(t.view[c+1].line)-1,u=t.view[c+1].node.previousSibling),!d)return!1;for(var m=e.doc.splitLines(bi(e,d,u,l,p)),h=P(e.doc,W(l,0),W(p,R(e.doc,p).text.length));1o.ch&&v.charCodeAt(v.length-f-1)==k.charCodeAt(k.length-f-1);)g--,f++;m[m.length-1]=v.slice(0,v.length-f).replace(/^\u200b+/,""),m[0]=m[0].slice(g).replace(/\u200b+$/,"");var w=W(l,g),T=W(p,h.length?C(h).length-f:0);if(1Ii&&s.scrollbars.setScrollTop(s.scroller.scrollTop=d),null!=l.selectionStart){(!Ai||Ai&&9>Ii)&&e();var t=0,n=function(){s.selForContextMenu==r.doc.sel&&0==l.selectionStart&&0t++?s.detectingSelectAll=setTimeout(n,500):(s.selForContextMenu=null,s.input.reset())};s.detectingSelectAll=setTimeout(n,200)}}var o=this,r=o.cm,s=r.display,l=o.textarea,i=Rn(r,t),d=s.scroller.scrollTop;if(i&&!Oi){var c=r.options.resetSelectionOnContextMenu;c&&-1==r.doc.sel.contains(i)&&To(r,_r)(r.doc,$o(i),$i);var p=l.style.cssText,u=o.wrapper.style.cssText;o.wrapper.style.cssText="position: absolute";var m=o.wrapper.getBoundingClientRect();l.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(t.clientY-m.top-5)+"px; left: "+(t.clientX-m.left-5)+"px;\n z-index: 1000; background: "+(Ai?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var h;if(Ni&&(h=window.scrollY),s.input.focus(),Ni&&window.scrollTo(null,h),s.input.reset(),r.somethingSelected()||(l.value=o.prevInput=" "),o.contextMenuPending=!0,s.selForContextMenu=r.doc.sel,clearTimeout(s.detectingSelectAll),Ai&&9<=Ii&&e(),zi){ze(t);var g=function(){Re(window,"mouseup",g),setTimeout(n,20)};ls(window,"mouseup",g)}else setTimeout(n,50)}},dl.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},dl.prototype.setUneditable=function(){},dl.prototype.needsContentAttribute=!1,function(e){function t(t,o,r,i){e.defaults[t]=o,r&&(n[t]=i?function(e,t,n){n!=tl&&r(e,t,n)}:r)}var n=e.optionHandlers;e.defineOption=t,e.Init=tl,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,or(e)},!0),t("indentUnit",2,or,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){rr(e),un(e),Io(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,!!t){var n=[],o=e.doc.first;e.doc.iter(function(e){for(var r=0,i;;){if(i=e.text.indexOf(t,r),-1==i)break;r=i+t.length,n.push(W(o,i))}o++});for(var r=n.length-1;0<=r;r--)Gr(e.doc,t,n[r],W(n[r].line,n[r].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=tl&&e.refresh()}),t("specialCharPlaceholder",bt,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",Bi?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!qi),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){Za(e),ei(e)},!0),t("keyMap","default",function(e,t,n){var o=ka(t),r=n!=tl&&ka(n);r&&r.detach&&r.detach(e,o),o.attach&&o.attach(e,r||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,ni,!0),t("gutters",[],function(e){Ko(e.options),ei(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?On(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return mo(e)},!0),t("scrollbarStyle","native",function(e){go(e),mo(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Ko(e.options),ei(e)},!0),t("firstLineNumber",1,ei,!0),t("lineNumberFormatter",function(e){return e},ei,!0),t("showCursorWhenSelecting",!1,Fn,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Kn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,ti),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Fn,!0),t("singleCursorHeightPerLine",!0,Fn,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,rr,!0),t("addModeClass",!1,rr,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,rr,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null),t("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(oi),function(e){var t=e.optionHandlers,o=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var o=this.options,r=o[e];o[e]==n&&"mode"!=e||(o[e]=n,t.hasOwnProperty(e)&&To(this,t[e])(this,n,r),Pe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](ka(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;no&&(ai(t,i.head.line,e,!0),o=i.head.line,r==t.doc.sel.primIndex&&oo(t))}),getTokenAt:function(e,t){return dt(this,e,t)},getLineTokens:function(e,t){return dt(this,W(e),t,!0)},getTokenTypeAt:function(e){e=J(this.doc,e);var t=rt(this,R(this.doc,e.line)),n=0,o=(t.length-1)/2,r=e.ch,i;if(0==r)i=t[2];else for(;;){var s=n+o>>1;if((s?t[2*s-1]:0)>=r)o=s;else if(t[2*s+1]l?i:0==l?null:i.slice(0,l-1)},getModeAt:function(t){var n=this.doc.mode;return n.innerMode?e.innerMode(n,this.getTokenAt(t).state).mode:n},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=this,r=[];if(!o.hasOwnProperty(t))return r;var s=o[t],l=this.getModeAt(e);if("string"==typeof l[t])s[l[t]]&&r.push(s[l[t]]);else if(l[t])for(var d=0,i;di&&(e=i,o=!0),r=R(this.doc,e)}else r=e;return fn(this,r,{top:0,left:0},t||"page",n||o).top+(o?this.doc.height-Ie(r):0)},defaultTextHeight:function(){return Nn(this.display)},defaultCharWidth:function(){return Ln(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,o,r){var i=this.display;e=xn(this,J(this.doc,e));var s=e.bottom,d=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),i.sizer.appendChild(t),"over"==o)s=e.top;else if("above"==o||"near"==o){var c=l(i.wrapper.clientHeight,this.doc.height),p=l(i.sizer.clientWidth,i.lineSpace.clientWidth);("above"==o||e.bottom+t.offsetHeight>c)&&e.top>t.offsetHeight?s=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=c&&(s=e.bottom),d+t.offsetWidth>p&&(d=p-t.offsetWidth)}t.style.top=s+"px",t.style.left=t.style.right="","right"==r?(d=i.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==r?d=0:"middle"==r&&(d=(i.sizer.clientWidth-t.offsetWidth)/2),t.style.left=d+"px"),n&&eo(this,{left:d,top:s,right:d+t.offsetWidth,bottom:s+t.offsetHeight})},triggerOnKeyDown:Eo(Pa),triggerOnKeyPress:Eo(Ua),triggerOnKeyUp:Ba,triggerOnMouseDown:Eo(qa),execCommand:function(e){if($s.hasOwnProperty(e))return $s[e].call(null,this)},triggerElectric:Eo(function(e){di(this,e)}),findPosH:function(e,t,n,o){var r=this,s=1;0>t&&(s=-1,t=-t);for(var l=J(this.doc,e),d=0;de?o.from():o.to()},Zi)}),deleteH:Eo(function(e,t){var n=this.doc.sel,o=this.doc;n.somethingSelected()?o.replaceSelection("",null,"+delete"):Sa(this,function(n){var r=mi(o,n.head,e,t,!1);return 0>e?{from:r,to:n.head}:{from:n.head,to:r}})}),findPosV:function(e,t,n,o){var r=this,s=1,l=o;0>t&&(s=-1,t=-t);for(var d=J(this.doc,e),c=0,i;ce?i.from():i.to();var l=xn(n,i.head,"div");null!=i.goalColumn&&(l.left=i.goalColumn),r.push(l.left);var d=hi(n,l,e,t);return"page"==t&&i==o.sel.primary()&&to(n,bn(n,d,"div").top-l.top),d},Zi),r.length)for(var l=0;lx(cl,pl)&&(oi.prototype[pl]=function(e){return function(){return e.apply(this.doc,arguments)}}(Ws.prototype[pl]));return Ve(Ws),oi.inputStyles={textarea:dl,contenteditable:ll},oi.defineMode=function(e){oi.defaults.mode||"null"==e||(oi.defaults.mode=e),Je.apply(this,arguments)},oi.defineMIME=function(e,t){hs[e]=t},oi.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),oi.defineMIME("text/plain","null"),oi.defineExtension=function(e,t){oi.prototype[e]=t},oi.defineDocExtension=function(e,t){Ws.prototype[e]=t},oi.fromTextArea=function(e,t){function n(){e.value=l.getValue()}if(t=t?b(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var o=h();t.autofocus=o==e||null!=e.getAttribute("autofocus")&&o==document.body}var r;if(e.form&&(ls(e.form,"submit",n),!t.leaveSubmitMethodAlone)){var i=e.form;r=i.submit;try{var s=i.submit=function(){n(),i.submit=r,i.submit(),i.submit=s}}catch(t){}}t.finishInit=function(t){t.save=n,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,n(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(Re(e.form,"submit",n),"function"==typeof e.form.submit&&(e.form.submit=r))}},e.style.display="none";var l=oi(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return l},function(e){e.off=Re,e.on=ls,e.wheelEventPixels=Xo,e.Doc=Ws,e.splitLines=ds,e.countColumn=v,e.findColumn=k,e.isWordChar=I,e.Pass=Ji,e.signal=Pe,e.Line=Ss,e.changeEnd=Yo,e.scrollbarModel=_s,e.Pos=W,e.cmpPos=z,e.modes=ms,e.mimeModes=hs,e.resolveMode=$e,e.getMode=Ye,e.modeExtensions=gs,e.extendMode=Ze,e.copyState=et,e.startState=nt,e.innerMode=tt,e.commands=$s,e.keyMap=Js,e.keyName=va,e.isModifierKey=ba,e.lookupKey=ya,e.normalizeKeyMap=fa,e.StringStream=fs,e.SharedTextMarker=qs,e.TextMarker=Vs,e.LineWidget=Bs,e.e_preventDefault=qe,e.e_stopPropagation=je,e.e_stop=ze,e.addClass=g,e.contains=m,e.rmClass=Hi,e.keyNames=Ks}(oi),oi.version="5.38.0",oi})},uQIK:function(e,t,n){(function(e){e(n("tQq4"))})(function(e){function t(e,t,o){var r=e.getLineHandle(t.line),i=t.ch-1,d=o&&o.afterCursor;null==d&&(d=/(^| )cm-fat-cursor($| )/.test(e.getWrapperElement().className));var c=!d&&0<=i&&l[r.text.charAt(i)]||l[r.text.charAt(++i)];if(!c)return null;var p=">"==c.charAt(1)?1:-1;if(o&&o.strict&&0i))for(m==t.line&&(g=t.ch-(0>n?1:0));g!=f;g+=n){var y=h.charAt(g);if(p.test(y)&&(void 0===o||e.getTokenTypeAt(s(m,g+1))==o)){var b=l[y];if(">"==b.charAt(1)==0document.documentMode),s=e.Pos,l={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"};e.defineOption("matchBrackets",!1,function(t,n,o){o&&o!=e.Init&&(t.off("cursorActivity",r),t.state.matchBrackets&&t.state.matchBrackets.currentlyHighlighted&&(t.state.matchBrackets.currentlyHighlighted(),t.state.matchBrackets.currentlyHighlighted=null)),n&&(t.state.matchBrackets="object"==typeof n?n:{},t.on("cursorActivity",r))}),e.defineExtension("matchBrackets",function(){o(this,!0)}),e.defineExtension("findMatchingBracket",function(e,n,o){return(o||"boolean"==typeof n)&&(o?(o.strict=n,n=o):n=n?{strict:!0}:null),t(this,e,n)}),e.defineExtension("scanForBracket",function(e,t,o,r){return n(this,e,t,o,r)})})},vCxL:function(e,t,n){"use strict";function r(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function o(t,o){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var s=n.call(t),i=[],l,r;try{for(;(void 0===o||0o.indexOf(t)&&(e[t]=n[t]);if(null!=n&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,t=Object.getOwnPropertySymbols(n);ro.indexOf(t[r])&&(e[t[r]]=n[t[r]]);return e},t.__decorate=function(e,t,n,o){var s=arguments.length,l=3>s?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o,r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,n,o);else for(var d=e.length-1;0<=d;d--)(r=e[d])&&(l=(3>s?r(l):3d[0]&&o[1]m;m++)if((5==e||r||m in c)&&(g=c[m],f=p(g,m,d),e))if(n)h[m]=f;else if(f)switch(e){case 3:return!0;case 5:return g;case 6:return m;case 2:h.push(g);}else if(o)return!1;return r?-1:3==e||o?o:h}},he=de("unscopables"),ge=Array.prototype;void 0==ge[he]&&P(ge,he,{});var fe=function(e){ge[he][e]=!0},ye=me(5),be="find",xe=!0;be in[]&&[,][be](function(){xe=!1}),Q(Q.P+Q.F*xe,"Array",{find:function(e){return ye(this,e,1e?Ee(e+t,0):o(e,t)},Ie=le("keys"),Ne=function(e){return Ie[e]||(Ie[e]=W(e))},Le=function(e){return function(t,n,o){var r=Te(t),i=re(r.length),s=Ae(o,i),l;if(e&&n!=n){for(;i>s;)if(l=r[s++],l!=l)return!0;}else for(;i>s;s++)if((e||s in r)&&r[s]===n)return e||s||0;return!e&&-1}}(!1),_e=Ne("IE_PROTO"),Oe=function(e,t){var n=Te(e),o=0,r=[],i;for(i in n)i!=_e&&U(n,i)&&r.push(i);for(;t.length>o;)U(n,i=t[o++])&&(~Le(r,i)||r.push(i));return r},Me=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],De=Object.keys||function(e){return Oe(e,Me)},Re=Object.getOwnPropertySymbols,Pe={f:Re},Fe={}.propertyIsEnumerable,Be={f:Fe},Ue=Object.assign,Ve=!Ue||E(function(){var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach(function(e){t[e]=e}),7!=Ue({},e)[n]||Object.keys(Ue({},t)).join("")!=o})?function(e){for(var t=ee(e),n=arguments.length,o=1,r=Pe.f,i=Be.f;n>o;)for(var s=Y(arguments[o++]),l=r?De(s).concat(r(s)):De(s),d=l.length,c=0,p;d>c;)i.call(s,p=l[c++])&&(t[p]=s[p]);return t}:Ue;Q(Q.S+Q.F,"Object",{assign:Ve});var qe=S.Object.assign,je=de("match"),We=function(e){var t;return w(e)&&(void 0===(t=e[je])?"RegExp"==$(e):!!t)},ze=function(e,t,n){if(We(t))throw TypeError("String#"+n+" doesn't accept regex!");return Z(e)+""},He=de("match"),Ke="startsWith",Ge=""[Ke];Q(Q.P+Q.F*function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[He]=!1,!"/./"[e](t)}catch(e){}}return!0}(Ke),"String",{startsWith:function(e){var t=ze(this,e,Ke),n=re(o(1r||r==Infinity)throw RangeError("Count can't be negative");for(;0>>=1)&&(t+=t))1&r&&(o+=t);return o}});var Qe=S.String.repeat,Je=h(function(e){var t=W("meta"),n=R.f,o=0,r=Object.isExtensible||function(){return!0},i=!E(function(){return r(Object.preventExtensions({}))}),s=function(e){n(e,t,{value:{i:"O"+ ++o,w:{}}})},l=e.exports={KEY:t,NEED:!1,fastKey:function(e,n){if(!w(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!U(e,t)){if(!r(e))return"F";if(!n)return"E";s(e)}return e[t].i},getWeak:function(e,n){if(!U(e,t)){if(!r(e))return!0;if(!n)return!1;s(e)}return e[t].w},onFreeze:function(e){return i&&l.NEED&&r(e)&&!U(e,t)&&s(e),e}}}),$e=Je.KEY,Ye=Je.NEED,Ze=Je.fastKey,et=Je.getWeak,tt=Je.onFreeze,nt=R.f,ot=de("toStringTag"),rt=function(e,t,n){e&&!U(e=n?e:e.prototype,ot)&&nt(e,ot,{configurable:!0,value:t})},at={f:de},it=!1,st=R.f,lt=function(e){var t=S.Symbol||(S.Symbol=v.Symbol||{});"_"==e.charAt(0)||e in t||st(t,e,{value:at.f(e)})},dt=function(e){var t=De(e),n=Pe.f;if(n)for(var o=n(e),r=Be.f,s=0,i;o.length>s;)r.call(e,i=o[s++])&&t.push(i);return t},ct=A?Object.defineProperties:function(e,t){T(e);for(var n=De(t),o=n.length,r=0,i;o>r;)R.f(e,i=n[r++],t[i]);return e},pt=v.document,ut=pt&&pt.documentElement,mt=Ne("IE_PROTO"),ht=function(){},ft="prototype",yt=function(){var e=L("iframe"),t=Me.length,n="<",o=">",r;for(e.style.display="none",ut.appendChild(e),e.src="javascript:",r=e.contentWindow.document,r.open(),r.write(n+"script"+o+"document.F=Object"+n+"/script"+o),r.close(),yt=r.F;t--;)delete yt[ft][Me[t]];return yt()},gt=Object.create||function(e,t){var n;return null===e?n=yt():(ht[ft]=T(e),n=new ht,ht[ft]=null,n[mt]=e),void 0===t?n:ct(n,t)},bt=Me.concat("length","prototype"),xt=Object.getOwnPropertyNames||function(e){return Oe(e,bt)},vt={f:xt},kt=vt.f,St={}.toString,Ct="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],wt=function(e){try{return kt(e)}catch(t){return Ct.slice()}},Tt={f:function(e){return Ct&&"[object Window]"==St.call(e)?wt(e):kt(Te(e))}},Et=Object.getOwnPropertyDescriptor,At=A?Et:function(e,t){if(e=Te(e),t=M(t,!0),_)try{return Et(e,t)}catch(t){}return U(e,t)?F(!Be.f.call(e,t),e[t]):void 0},It={f:At},Nt=Je.KEY,Lt=It.f,_t=R.f,Ot=Tt.f,Mt=v.Symbol,Dt=v.JSON,Rt=Dt&&Dt.stringify,Pt="prototype",Ft=de("_hidden"),Bt=de("toPrimitive"),Ut={}.propertyIsEnumerable,Vt=le("symbol-registry"),qt=le("symbols"),jt=le("op-symbols"),Wt=Object[Pt],zt="function"==typeof Mt,Ht=v.QObject,Kt=!Ht||!Ht[Pt]||!Ht[Pt].findChild,Gt=A&&E(function(){return 7!=gt(_t({},"a",{get:function(){return _t(this,"a",{value:7}).a}})).a})?function(e,t,n){var o=Lt(Wt,t);o&&delete Wt[t],_t(e,t,n),o&&e!==Wt&&_t(Wt,t,o)}:_t,Xt=function(e){var t=qt[e]=gt(Mt[Pt]);return t._k=e,t},Qt=zt&&"symbol"==typeof Mt.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof Mt},Jt=function(e,t,n){return e===Wt&&Jt(jt,t,n),T(e),t=M(t,!0),T(n),U(qt,t)?(n.enumerable?(U(e,Ft)&&e[Ft][t]&&(e[Ft][t]=!1),n=gt(n,{enumerable:F(0,!1)})):(!U(e,Ft)&&_t(e,Ft,F(1,{})),e[Ft][t]=!0),Gt(e,t,n)):_t(e,t,n)},$t=function(e,t){T(e);for(var n=dt(t=Te(t)),o=0,r=n.length,i;r>o;)Jt(e,i=n[o++],t[i]);return e},Yt=function(e){var t=Ut.call(this,e=M(e,!0));return this===Wt&&U(qt,e)&&!U(jt,e)?!1:t||!U(this,e)||!U(qt,e)||U(this,Ft)&&this[Ft][e]?t:!0},Zt=function(e,t){if(e=Te(e),t=M(t,!0),e!==Wt||!U(qt,t)||U(jt,t)){var n=Lt(e,t);return n&&U(qt,t)&&!(U(e,Ft)&&e[Ft][t])&&(n.enumerable=!0),n}},en=function(e){for(var t=Ot(Te(e)),n=[],o=0,r;t.length>o;)U(qt,r=t[o++])||r==Ft||r==Nt||n.push(r);return n},tn=function(e){for(var t=e===Wt,n=Ot(t?jt:Te(e)),o=[],r=0,i;n.length>r;)U(qt,i=n[r++])&&(!t||U(Wt,i))&&o.push(qt[i]);return o};zt||(Mt=function(){if(this instanceof Mt)throw TypeError("Symbol is not a constructor!");var e=W(0on;)de(nn[on++]);for(var j=De(de.store),rn=0;j.length>rn;)lt(j[rn++]);Q(Q.S+Q.F*!zt,"Symbol",{for:function(e){return U(Vt,e+="")?Vt[e]:Vt[e]=Mt(e)},keyFor:function(e){if(!Qt(e))throw TypeError(e+" is not a symbol!");for(var t in Vt)if(Vt[t]===e)return t},useSetter:function(){Kt=!0},useSimple:function(){Kt=!1}}),Q(Q.S+Q.F*!zt,"Object",{create:function(e,t){return void 0===t?gt(e):$t(gt(e),t)},defineProperty:Jt,defineProperties:$t,getOwnPropertyDescriptor:Zt,getOwnPropertyNames:en,getOwnPropertySymbols:tn}),Dt&&Q(Q.S+Q.F*(!zt||E(function(){var e=Mt();return"[null]"!=Rt([e])||"{}"!=Rt({a:e})||"{}"!=Rt(Object(e))})),"JSON",{stringify:function(e){for(var t=[e],n=1,o,r;arguments.length>n;)t.push(arguments[n++]);if(r=o=t[1],(w(o)||void 0!==e)&&!Qt(e))return ae(o)||(o=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!Qt(t))return t}),t[1]=o,Rt.apply(Dt,t)}}),Mt[Pt][Bt]||P(Mt[Pt],Bt,Mt[Pt].valueOf),rt(Mt,"Symbol"),rt(Math,"Math",!0),rt(v.JSON,"JSON",!0);var k=de("toStringTag"),an="Arguments"==$(function(){return arguments}()),sn=function(e,t){try{return e[t]}catch(t){}},ln=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=sn(t=Object(e),k))?n:an?$(t):"Object"==(o=$(t))&&"function"==typeof t.callee?"Arguments":o};({})[de("toStringTag")]="z",z(Object.prototype,"toString",function(){return"[object "+ln(this)+"]"},!0),lt("asyncIterator"),lt("observable");var dn=S.Symbol,cn={},pn={};P(pn,de("iterator"),function(){return this});var un=function(e,t,n){e.prototype=gt(pn,{next:F(1,n)}),rt(e,t+" Iterator")},mn=Ne("IE_PROTO"),hn=Object.prototype,gn=Object.getPrototypeOf||function(e){return e=ee(e),U(e,mn)?e[mn]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?hn:null},fn=de("iterator"),yn=!([].keys&&"next"in[].keys()),bn="keys",xn="values",vn=function(){return this},kn=function(e,t,n,o,r,i,s){un(n,t,o);var l=function(e){return!yn&&e in u?u[e]:e===bn?function(){return new n(this,e)}:e===xn?function(){return new n(this,e)}:function(){return new n(this,e)}},d=t+" Iterator",c=r==xn,p=!1,u=e.prototype,m=u[fn]||u["@@iterator"]||r&&u[r],h=m||l(r),g=r?c?l("entries"):h:void 0,f="Array"==t?u.entries||m:m,y,b,x;if(f&&(x=gn(f.call(new e)),x!==Object.prototype&&x.next&&(rt(x,d,!0),"function"!=typeof x[fn]&&P(x,fn,vn))),c&&m&&m.name!==xn&&(p=!0,h=function(){return m.call(this)}),(yn||p||!u[fn])&&P(u,fn,h),cn[t]=h,cn[d]=vn,r)if(y={values:c?h:l(xn),keys:i?h:l(bn),entries:g},s)for(b in y)b in u||z(u,b,y[b]);else Q(Q.P+Q.F*(yn||p),t,y);return y},Sn=function(e){return function(t,n){var o=Z(t)+"",r=oe(n),i=o.length,s,l;return 0>r||r>=i?e?"":void 0:(s=o.charCodeAt(r),55296>s||56319(l=o.charCodeAt(r+1))||57343=e.length?{value:void 0,done:!0}:(n=Sn(e,t),this._i+=n.length,{value:n,done:!1})});var Cn=function(e,t){return{value:t,done:!!e}},wn=kn(Array,"Array",function(e,t){this._t=Te(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,Cn(1)):"keys"==t?Cn(0,n):"values"==t?Cn(0,e[n]):Cn(0,[n,e[n]])},"values");cn.Arguments=cn.Array,fe("keys"),fe("values"),fe("entries");for(var Tn=de("iterator"),En=de("toStringTag"),An=cn.Array,In={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},Nn=De(In),Ln=0;Ln",type:"keyToKey",toKeys:"h"},{keys:"",type:"keyToKey",toKeys:"l"},{keys:"",type:"keyToKey",toKeys:"k"},{keys:"",type:"keyToKey",toKeys:"j"},{keys:"",type:"keyToKey",toKeys:"l"},{keys:"",type:"keyToKey",toKeys:"h",context:"normal"},{keys:"",type:"keyToKey",toKeys:"W"},{keys:"",type:"keyToKey",toKeys:"B",context:"normal"},{keys:"",type:"keyToKey",toKeys:"w"},{keys:"",type:"keyToKey",toKeys:"b",context:"normal"},{keys:"",type:"keyToKey",toKeys:"j"},{keys:"",type:"keyToKey",toKeys:"k"},{keys:"",type:"keyToKey",toKeys:""},{keys:"",type:"keyToKey",toKeys:""},{keys:"",type:"keyToKey",toKeys:"",context:"insert"},{keys:"",type:"keyToKey",toKeys:"",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"c",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"VdO",context:"visual"},{keys:"",type:"keyToKey",toKeys:"0"},{keys:"",type:"keyToKey",toKeys:"$"},{keys:"",type:"keyToKey",toKeys:""},{keys:"",type:"keyToKey",toKeys:""},{keys:"",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"",type:"action",action:"toggleOverwrite",context:"insert"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"(",type:"motion",motion:"moveBySentence",motionArgs:{forward:!1}},{keys:")",type:"motion",motion:"moveBySentence",motionArgs:{forward:!0}},{keys:"",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"expandToLine",motionArgs:{linewise:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r",type:"action",action:"replace",isEdit:!0},{keys:"@",type:"action",action:"replayMacro"},{keys:"q",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0}},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"",type:"action",action:"redo"},{keys:"m",type:"action",action:"setMark"},{keys:"\"",type:"action",action:"setRegister"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"",type:"action",action:"indent",actionArgs:{indentRight:!0},context:"insert"},{keys:"",type:"action",action:"indent",actionArgs:{indentRight:!1},context:"insert"},{keys:"a",type:"motion",motion:"textObjectManipulation"},{keys:"i",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],n=[{name:"colorscheme",shortName:"colo"},{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"unmap"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"se"},{name:"set",shortName:"se"},{name:"setlocal",shortName:"setl"},{name:"setglobal",shortName:"setg"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"nohlsearch",shortName:"noh"},{name:"yank",shortName:"y"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"global",shortName:"g"}],c=t.Pos;t.Vim=function(){function i(e){e.setOption("disableInput",!0),e.setOption("showCursorWhenSelecting",!1),t.signal(e,"vim-mode-change",{mode:"normal"}),e.on("cursorActivity",ct),D(e),t.on(e.getInputField(),"paste",v(e))}function p(e){e.setOption("disableInput",!1),e.off("cursorActivity",ct),t.off(e.getInputField(),"paste",v(e)),e.state.vim=null}function u(e,n){this==t.keyMap.vim&&(t.rmClass(e.getWrapperElement(),"cm-fat-cursor"),"contenteditable"==e.getOption("inputStyle")&&null!=document.body.style.caretColor&&(y(e),e.getInputField().style.caretColor="")),n&&n.attach==m||p(e)}function m(e,n){this==t.keyMap.vim&&(t.addClass(e.getWrapperElement(),"cm-fat-cursor"),"contenteditable"==e.getOption("inputStyle")&&null!=document.body.style.caretColor&&(f(e),e.getInputField().style.caretColor="transparent")),n&&n.attach==m||i(e)}function h(e){for(var t=e.listSelections(),n=[],o=0,r;o")}function v(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(z(e.getCursor(),0,1)),Rt.enterInsertMode(e,{},t))}),t.onPasteFn}function k(e,t){for(var n=[],o=e;o=e.firstLine()&&t<=e.lastLine()}function C(e){return /^[a-z]$/.test(e)}function w(e){return-1!="()[]{}".indexOf(e)}function T(e){return xt.test(e)}function E(e){return /^[A-Z]$/.test(e)}function A(e){return /^\s*$/.test(e)}function I(e){return-1!=".?!".indexOf(e)}function N(e,t){for(var n=0;n"==t.slice(-11)){var n=t.length-11,o=e.slice(0,n),r=t.slice(0,n);return o==r&&e.length>n?"full":0==r.indexOf(o)&&"partial"}return e==t?"full":0==t.indexOf(e)&&"partial"}function X(e){var t=/^.*(<[^>]+>)$/.exec(e),n=t?t[1]:e.slice(-1);return 1"===n?"\n":""===n?" ":""),n}function Q(e,t,n){return function(){for(var o=0;op?m:0,g=o[h].anchor,f=s(g.line,r.line),y=l(g.line,r.line),b=g.ch,x=r.ch,v=o[h].head.ch-b,k=x-b;0=k?(b++,!i&&x--):0>v&&0<=k?(b--,!u&&x++):0>v&&-1==k&&(b--,x++);for(var S=f,C;S<=y;S++)C={anchor:new c(S,b),head:new c(S,x)},n.push(C);return e.setSelections(n),t.ch=x,g.ch=b,g}function se(e,t,n){for(var o=[],r=0,i;rm&&(r.line=m),r.ch=ne(e,r.line)}else r.ch=0,d.ch=ne(e,d.line);return{ranges:[{anchor:d,head:r}],primary:0}}if("block"==n){for(var h=s(d.line,r.line),g=s(d.ch,r.ch),f=l(d.line,r.line),y=l(d.ch,r.ch)+1,b=f-h+1,x=r.line==h?0:b-1,v=[],k=0;k=s.length)return null;o?d=kt[0]:(d=vt[0],!d(s.charAt(l))&&(d=vt[1]));for(var p=l,u=l;d(s.charAt(p))&&pu&&!y?y=!0:r=!1,m=d;m>p&&(r&&s(m)!=y&&m!=d||!l(m,-1,!0));m--);return i=new c(m,0),{start:i,end:h}}function Le(e,t,n,o){function r(e,t){if(0>t.pos+t.dir||t.pos+t.dir>=t.line.length){if(t.ln+=t.dir,!S(e,t.ln))return t.line=null,t.ln=null,void(t.pos=null);t.line=e.getLine(t.ln),t.pos=0o?s(e,l.ln,l.pos,o):i(e,l.ln,l.pos,o),n--;return c(l.ln,l.pos)}function _e(e,t,n,o){var r=t,i={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/}[n],s={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{"}[n],l=e.getLine(r.line).charAt(r.ch),d=l===s?1:0,p,u;if(p=e.scanForBracket(c(r.line,r.ch+d),-1,void 0,{bracketRegex:i}),u=e.scanForBracket(c(r.line,r.ch+d),1,void 0,{bracketRegex:i}),!p||!u)return{start:r,end:r};if(p=p.pos,u=u.pos,p.line==u.line&&p.ch>u.ch||p.line>u.line){var m=p;p=u,u=m}return o?u.ch+=1:p.ch+=1,{start:p,end:u}}function Oe(e,t,n,o){var r=J(t),s=e.getLine(r.line),l=s.split(""),d=l.indexOf(n),p,u,m,i;if(r.ch"+t+"",{bottom:!0,duration:5e3}):alert(t)}function He(e,t){var n=""+(e||"")+"";return t&&(n+=" "+t+""),n}function Ke(e,t){var n=(t.prefix||"")+" "+(t.desc||""),o=He(t.prefix,t.desc);Re(e,o,n,t.onClose,t)}function Ge(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var n=["global","multiline","ignoreCase","source"],o=0,r;o=t&&e<=n:e==t}function et(e){var t=e.getScrollInfo(),n=e.coordsChar({left:0,top:6+t.top},"local"),o=t.clientHeight-10+t.top,r=e.coordsChar({left:0,top:o},"local");return{top:n.line,bottom:r.line}}function tt(e,t,n){if("'"==n){var o=e.doc.history.done,r=o[o.length-2];return r&&r.ranges&&r.ranges[0].head}if("."==n){if(0==e.doc.history.lastModTime)return;var i=e.doc.history.done.filter(function(e){if(void 0!==e.changes)return e});i.reverse();var s=i[0].changes[0].to;return s}var l=t.marks[n];return l&&l.find()}function nt(e,n,o,r,i,s,l,d,c){function p(){e.operation(function(){for(;!g;)u(),m();h()})}function u(){var t=e.getRange(s.from(),s.to()),n=t.replace(l,d);s.replace(n)}function m(){for(;s.findNext()&&Ze(s.from(),r,i);)if(o||!f||s.from().line!=f.line)return e.scrollIntoView(s.from(),30),e.setSelection(s.from(),s.to()),f=s.from(),void(g=!1);g=!0}function h(t){if(t&&t(),e.focus(),f){e.setCursor(f);var n=e.state.vim;n.exMode=!1,n.lastHPos=n.lastHSPos=f.ch}c&&c()}e.state.vim.exMode=!0;var g=!1,f=s.from();return m(),g?void ze(e,"No matches for "+l.source):n?void Ke(e,{prefix:"replace with "+d+" (y/n/a/q/l)",onKeyDown:function(n,o,r){t.e_stop(n);var i=t.keyName(n);switch(i){case"Y":u(),m();break;case"N":m();break;case"A":var s=c;c=void 0,e.operation(p),c=s;break;case"L":u();case"Q":case"Esc":case"Ctrl-C":case"Ctrl-[":h(r);}return g&&h(r),!0}}):(p(),void(c&&c()))}function ot(e){var n=e.state.vim,o=Lt.macroModeState,r=Lt.registerController.getRegister("."),s=o.isPlaying,l=o.lastInsertModeChanges,d=[];if(!s){for(var c=l.inVisualBlock&&n.lastSelection?n.lastSelection.visualBlock.height:1,p=l.changes,d=[],u=0;u|<\w+>|./.exec(i),u=p[0],i=i.substring(p.index+u.length),t.Vim.handleKey(e,u,"macro"),n.insertMode){var m=s.insertModeChanges[d++].changes;Lt.macroModeState.lastInsertModeChanges.changes=m,ft(e,m,1),ot(e)}o.isPlaying=!1}function it(e,t){if(!e.isPlaying){var n=e.latestRegister,o=Lt.registerController.getRegister(n);o&&o.pushText(t)}}function st(e){if(!e.isPlaying){var t=e.latestRegister,n=Lt.registerController.getRegister(t);n&&n.pushInsertModeChanges&&n.pushInsertModeChanges(e.lastInsertModeChanges)}}function lt(e,t){if(!e.isPlaying){var n=e.latestRegister,o=Lt.registerController.getRegister(n);o&&o.pushSearchQuery&&o.pushSearchQuery(t)}}function dt(e,t){var n=Lt.macroModeState,o=n.lastInsertModeChanges;if(!n.isPlaying)for(;t;){if(o.expectCursorActivityForChange=!0,"+input"==t.origin||"paste"==t.origin||void 0===t.origin){var r=t.text.join("\n");o.maybeReset&&(o.changes=[],o.maybeReset=!1),e.state.overwrite&&!/\n/.test(r)?o.changes.push([r]):o.changes.push(r)}t=t.next}}function ct(e){var t=e.state.vim;if(t.insertMode){var n=Lt.macroModeState;if(n.isPlaying)return;var o=n.lastInsertModeChanges;o.expectCursorActivityForChange?o.expectCursorActivityForChange=!1:o.maybeReset=!0}else e.curOp.isVimOp||ut(e,t);t.visualMode&&pt(e)}function pt(e){var t=e.state.vim,n=j(e,J(t.sel.head)),o=z(n,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(n,o,{className:"cm-animate-fat-cursor"})}function ut(e,n){var o=e.getCursor("anchor"),r=e.getCursor("head");if(n.visualMode&&!e.somethingSelected()?ge(e,!1):!n.visualMode&&!n.insertMode&&e.somethingSelected()&&(n.visualMode=!0,n.visualLine=!1,t.signal(e,"vim-mode-change",{mode:"visual"})),n.visualMode){var i=Y(r,o)?0:-1,s=Y(r,o)?-1:0;r=z(r,0,i),o=z(o,0,s),n.sel={anchor:o,head:r},Ae(e,n,"<",Z(r,o)),Ae(e,n,">",ee(r,o))}else n.insertMode||(n.lastHPos=e.getCursor().ch)}function mt(e){this.keyName=e}function ht(n){var e=Lt.macroModeState,o=e.lastInsertModeChanges,r=t.keyName(n);r&&(-1==r.indexOf("Delete")&&-1==r.indexOf("Backspace")||t.lookupKey(r,"vim-insert",function(){return o.maybeReset&&(o.changes=[],o.maybeReset=!1),o.changes.push(new mt(r)),!0}))}function gt(e,t,n,o){function r(){d?Ot.processAction(e,t,t.lastEditActionCommand):Ot.evalInput(e,t)}function s(n){if(0"]),Et=[].concat(St,Ct,wt,["-","\"",".",":","/"]),At={};L("filetype",void 0,"string",["ft"],function(e,t){if(void 0!==t){if(void 0===e){var n=t.getOption("mode");return"null"==n?"":n}var n=""==e?"null":e;t.setOption("mode",n)}});var It=function(){var e=100,t=-1,n=0,o=0,r=Array(e);return{cachedCursor:void 0,add:function(i,s,l){function d(n){var o=++t%e,s=r[o];s&&s.clear(),r[o]=i.setBookmark(n)}var c=t%e,p=r[c];if(p){var u=p.find();u&&!$(u,s)&&d(s)}else d(s);d(l),n=t,o=t-e+1,0>o&&(o=0)},move:function(i,s){t+=s,t>n?t=n:to)}return l}}},Nt=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};M.prototype={exitMacroRecordMode:function(){var e=Lt.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var n=Lt.registerController.getRegister(t);n&&(n.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog("(recording)["+t+"]",null,{bottom:!0})),this.isRecording=!0)}};var Lt,_t;P.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},P.prototype.getRepeat=function(){var e=0;return(0=n.length?(this.iterator=n.length,this.initialPrefix):0>r?e:void 0},pushInput:function(e){var t=this.historyBuffer.indexOf(e);-1"==i.keys.slice(-11)){var d=X(e);if(!d)return{type:"none"};n.selectedCharacter=d}return{type:"full",command:i}},processCommand:function(e,t,n){switch(t.inputState.repeatOverride=n.repeatOverride,n.type){case"motion":this.processMotion(e,t,n);break;case"operator":this.processOperator(e,t,n);break;case"operatorMotion":this.processOperatorMotion(e,t,n);break;case"action":this.processAction(e,t,n);break;case"search":this.processSearch(e,t,n);break;case"ex":case"keyToEx":this.processEx(e,t,n);break;default:}},processMotion:function(e,t,n){t.inputState.motion=n.motion,t.inputState.motionArgs=W(n.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,n){var o=t.inputState;if(o.operator){if(o.operator==n.operator)return o.motion="expandToLine",o.motionArgs={linewise:!0},void this.evalInput(e,t);F(e)}o.operator=n.operator,o.operatorArgs=W(n.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,n){var o=t.visualMode,r=W(n.operatorMotionArgs);r&&o&&r.visualLine&&(t.visualLine=!0),this.processOperator(e,t,n),o||this.processMotion(e,t,n)},processAction:function(e,t,n){var o=t.inputState,r=o.getRepeat(),i=W(n.actionArgs)||{};o.selectedCharacter&&(i.selectedCharacter=o.selectedCharacter),n.operator&&this.processOperator(e,t,n),n.motion&&this.processMotion(e,t,n),(n.motion||n.operator)&&this.evalInput(e,t),i.repeat=r||1,i.repeatIsExplicit=!!r,i.registerName=o.registerName,F(e),t.lastMotion=null,n.isEdit&&this.recordLastEdit(t,o,n),Rt[n.action](e,i,t)},processSearch:function(n,e,o){function r(t,r,i){Lt.searchHistoryController.pushInput(t),Lt.searchHistoryController.reset();try{Xe(n,t,r,i)}catch(o){return ze(n,"Invalid regex: "+t),void F(n)}Ot.processMotion(n,e,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:o.searchArgs.toJumplist}})}function i(e){n.scrollTo(h.left,h.top),r(e,!0,!0);var t=Lt.macroModeState;t.isRecording&<(t,e)}function l(o,e,r){var i=t.keyName(o),l,d;"Up"==i||"Down"==i?(l="Up"==i,d=o.target?o.target.selectionEnd:0,e=Lt.searchHistoryController.nextMatch(e,l)||"",r(e),d&&o.target&&(o.target.selectionEnd=o.target.selectionStart=s(d,o.target.value.length))):"Left"!=i&&"Right"!=i&&"Ctrl"!=i&&"Alt"!=i&&"Shift"!=i&&Lt.searchHistoryController.reset();var p;try{p=Xe(n,e,!0,!0)}catch(t){}p?n.scrollIntoView($e(n,!c,p),30):(Ye(n),n.scrollTo(h.left,h.top))}function d(o,e,r){var i=t.keyName(o);"Esc"==i||"Ctrl-C"==i||"Ctrl-["==i||"Backspace"==i&&""==e?(Lt.searchHistoryController.pushInput(e),Lt.searchHistoryController.reset(),Xe(n,m),Ye(n),n.scrollTo(h.left,h.top),t.e_stop(o),F(n),r(),n.focus()):"Up"==i||"Down"==i?t.e_stop(o):"Ctrl-U"==i&&(t.e_stop(o),r(""))}if(n.getSearchCursor){var c=o.searchArgs.forward,p=o.searchArgs.wholeWordOnly;De(n).setReversed(!c);var u=c?"/":"?",m=De(n).getQuery(),h=n.getScrollInfo();switch(o.searchArgs.querySrc){case"prompt":var g=Lt.macroModeState;if(g.isPlaying){var f=g.replaySearchQueries.shift();r(f,!0,!1)}else Ke(n,{onClose:i,prefix:u,desc:Vt,onKeyUp:l,onKeyDown:d});break;case"wordUnderCursor":var y=xe(n,!1,!0,!1,!0),b=!0;if(y||(y=xe(n,!1,!0,!1,!1),b=!1),!y)return;var f=n.getLine(y.start.line).substring(y.start.ch,y.end.ch);f=b&&p?"\\b"+f+"\\b":re(f),Lt.jumpList.cachedCursor=n.getCursor(),n.setCursor(y.start),r(f,!0,!1);}}},processEx:function(n,e,o){function r(e){Lt.exCommandHistoryController.pushInput(e),Lt.exCommandHistoryController.reset(),Wt.processCommand(n,e)}function i(o,e,r){var i=t.keyName(o),l,d;("Esc"==i||"Ctrl-C"==i||"Ctrl-["==i||"Backspace"==i&&""==e)&&(Lt.exCommandHistoryController.pushInput(e),Lt.exCommandHistoryController.reset(),t.e_stop(o),F(n),r(),n.focus()),"Up"==i||"Down"==i?(t.e_stop(o),l="Up"==i,d=o.target?o.target.selectionEnd:0,e=Lt.exCommandHistoryController.nextMatch(e,l)||"",r(e),d&&o.target&&(o.target.selectionEnd=o.target.selectionStart=s(d,o.target.value.length))):"Ctrl-U"==i?(t.e_stop(o),r("")):"Left"!=i&&"Right"!=i&&"Ctrl"!=i&&"Alt"!=i&&"Shift"!=i&&Lt.exCommandHistoryController.reset()}"keyToEx"==o.type?Wt.processCommand(n,o.exArgs.input):e.visualMode?Ke(n,{onClose:r,prefix:":",value:"'<,'>",onKeyDown:i,selectValueOnOpen:!1}):Ke(n,{onClose:r,prefix:":",onKeyDown:i})},evalInput:function(e,t){var n=t.inputState,r=n.motion,s=n.motionArgs||{},l=n.operator,d=n.operatorArgs||{},p=n.registerName,u=t.sel,m=J(t.visualMode?j(e,u.head):e.getCursor("head")),h=J(t.visualMode?j(e,u.anchor):e.getCursor("anchor")),g=J(m),f=J(h),y,b,x;if(l&&this.recordLastEdit(t,n),x=void 0===n.repeatOverride?n.getRepeat():n.repeatOverride,0",Y(b,y)?y:b)):!l&&(y=j(e,y),e.setCursor(y.line,y.ch))}if(l){if(d.lastSel){b=f;var C=d.lastSel,w=o(C.head.line-C.anchor.line),T=o(C.head.ch-C.anchor.ch);y=C.visualLine?c(f.line+w,f.ch):C.visualBlock?c(f.line+w,f.ch+T):C.head.line==C.anchor.line?c(f.line,f.ch+T):c(f.line+w,f.ch),t.visualMode=!0,t.visualLine=C.visualLine,t.visualBlock=C.visualBlock,u=t.sel={anchor:b,head:y},ue(e)}else t.visualMode&&(d.lastSel={anchor:J(u.anchor),head:J(u.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var E,A,I,N,L;if(!t.visualMode){if(E=J(b||f),A=J(y||g),Y(A,E)){var _=E;E=A,A=_}I=s.linewise||d.linewise,I?ye(e,E,A):s.forward&&fe(e,E,A),N="char";var O=!s.inclusive||I;L=me(e,{anchor:E,head:A},N,O)}else if(E=Z(u.head,u.anchor),A=ee(u.head,u.anchor),I=t.visualLine||d.linewise,N=t.visualBlock?"block":I?"line":"char",L=me(e,{anchor:E,head:A},N),I){var M=L.ranges;if("block"==N)for(var D=0;Dp&&r.line==p?this.moveToEol(e,t,n,o):(n.toFirstChar&&(i=be(e.getLine(l)),o.lastHPos=i),o.lastHSPos=e.charCoords(c(l,i),"div").left,c(l,i))},moveByDisplayLines:function(e,t,n,o){var r=t;switch(o.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:o.lastHSPos=e.charCoords(r,"div").left;}var i=n.repeat,s=e.findPosV(r,n.forward?i:-i,"line",o.lastHSPos);if(s.hitSide)if(n.forward)var l=e.charCoords(s,"div"),d={top:l.top+8,left:o.lastHSPos},s=e.coordsChar(d,"div");else{var p=e.charCoords(c(e.firstLine(),0),"div");p.left=o.lastHSPos,s=e.coordsChar(p,"div")}return o.lastHPos=s.ch,s},moveByPage:function(e,t,n){var o=n.repeat;return e.findPosV(t,n.forward?o:-o,"page")},moveByParagraph:function(e,t,n){var o=n.forward?1:-1;return Ne(e,t,n.repeat,o)},moveBySentence:function(e,t,n){var o=n.forward?1:-1;return Le(e,t,n.repeat,o)},moveByScroll:function(e,t,n,o){var r=e.getScrollInfo(),i=null,s=n.repeat;s||(s=r.clientHeight/(2*e.defaultTextHeight()));var l=e.charCoords(t,"local");n.repeat=s;var i=Mt.moveByDisplayLines(e,t,n,o);if(!i)return null;var d=e.charCoords(i,"local");return e.scrollTo(null,r.top+d.top-l.top),i},moveByWords:function(e,t,n){return we(e,t,n.repeat,!!n.forward,!!n.wordEnd,!!n.bigWord)},moveTillCharacter:function(e,t,n){var o=n.repeat,r=Te(e,o,n.forward,n.selectedCharacter),i=n.forward?-1:1;return(ke(i,n),!r)?null:(r.ch+=i,r)},moveToCharacter:function(e,t,n){var o=n.repeat;return ke(0,n),Te(e,o,n.forward,n.selectedCharacter)||t},moveToSymbol:function(e,t,n){var o=n.repeat;return Se(e,o,n.forward,n.selectedCharacter)||t},moveToColumn:function(e,t,n,o){var r=n.repeat;return o.lastHPos=r-1,o.lastHSPos=e.charCoords(t,"div").left,Ee(e,r)},moveToEol:function(e,t,n,o){o.lastHPos=Infinity;var r=c(t.line+n.repeat-1,Infinity),i=e.clipPos(r);return i.ch--,o.lastHSPos=e.charCoords(i,"div").left,r},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return c(n.line,be(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){for(var n=t,o=n.line,r=n.ch,i=e.getLine(o),s;re.lastLine()&&n.linewise&&!g?e.replaceRange("",h,p):e.replaceRange("",d,p),n.linewise&&(!g&&(e.setCursor(h),t.commands.newlineAndIndent(e)),d.ch=r),s=d}else{l=e.getSelection();var f=q("",o.length);e.replaceSelections(f),s=Z(o[0].head,o[0].anchor)}Lt.registerController.pushText(n.registerName,"change",l,n.linewise,1p.top?(c.line+=(d-p.top)/i,c.line=Math.ceil(c.line),e.setCursor(c),p=e.charCoords(c,"local"),e.scrollTo(null,p.top)):e.scrollTo(null,d);else{var u=d+e.getScrollInfo().clientHeight;u=d.anchor.line?p=z(d.head,0,1):p=c(d.anchor.line,0);else if("inplace"==i&&r.visualMode)return;e.setOption("disableInput",!1),n&&n.replace?(e.toggleOverwrite(!0),e.setOption("keyMap","vim-replace"),t.signal(e,"vim-mode-change",{mode:"replace"})):(e.toggleOverwrite(!1),e.setOption("keyMap","vim-insert"),t.signal(e,"vim-mode-change",{mode:"insert"})),Lt.macroModeState.isPlaying||(e.on("change",dt),t.on(e.getInputField(),"keydown",ht)),r.visualMode&&ge(e),se(e,p,u)}},toggleVisualMode:function(e,n,o){var r=n.repeat,i=e.getCursor(),s;o.visualMode?o.visualLine^n.linewise||o.visualBlock^n.blockwise?(o.visualLine=!!n.linewise,o.visualBlock=!!n.blockwise,t.signal(e,"vim-mode-change",{mode:"visual",subMode:o.visualLine?"linewise":o.visualBlock?"blockwise":""}),ue(e)):ge(e):(o.visualMode=!0,o.visualLine=!!n.linewise,o.visualBlock=!!n.blockwise,s=j(e,c(i.line,i.ch+r-1),!0),o.sel={anchor:i,head:s},t.signal(e,"vim-mode-change",{mode:"visual",subMode:o.visualLine?"linewise":o.visualBlock?"blockwise":""}),ue(e),Ae(e,o,"<",Z(i,s)),Ae(e,o,">",ee(i,s)))},reselectLastSelection:function(e,n,o){var r=o.lastSelection;if(o.visualMode&&ce(e,o),r){var i=r.anchorMark.find(),s=r.headMark.find();if(!i||!s)return;o.sel={anchor:i,head:s},o.visualMode=!0,o.visualLine=r.visualLine,o.visualBlock=r.visualBlock,ue(e),Ae(e,o,"<",Z(i,s)),Ae(e,o,">",ee(i,s)),t.signal(e,"vim-mode-change",{mode:"visual",subMode:o.visualLine?"linewise":o.visualBlock?"blockwise":""})}},joinLines:function(e,t,n){var o,r;if(n.visualMode){if(o=e.getCursor("anchor"),r=e.getCursor("head"),Y(r,o)){var s=r;r=o,o=s}r.ch=ne(e,r.line)-1}else{var d=l(t.repeat,2);o=e.getCursor(),r=j(e,c(o.line+d-1,Infinity))}for(var p=0,u=o.line;un)return"";if(e.getOption("indentWithTabs")){var o=r(n/d);return Array(o+1).join("\t")}return Array(n+1).join(" ")});l+=g?"\n":""}if(1e.lastLine()&&e.replaceRange("\n",c(I,0));var N=ne(e,I);Np.length&&(l=p.length),d=c(i.line,l)}if("\n"==r)o.visualMode||e.replaceRange("",i,d),(t.commands.newlineAndIndentContinueComment||t.commands.newlineAndIndent)(e);else{var u=e.getRange(i,d);if(u=u.replace(/[^\n]/g,r),o.visualBlock){var m=Array(e.getOption("tabSize")+1).join(" ");u=e.getSelection(),u=u.replace(/\t/g,m).replace(/[^\n]/g,r).split("\n"),e.replaceSelections(u)}else e.replaceRange(u,i,d);o.visualMode?(i=Y(s[0].anchor,s[0].head)?s[0].anchor:s[0].head,e.setCursor(i),ge(e,!1)):e.setCursor(z(d,0,-1))}},incrementNumberToken:function(e,t){for(var n=e.getCursor(),o=e.getLine(n.line),r=/(-?)(?:(0x)([\da-f]+)|(0b|0|)(\d+))/gi,i,s,l,d;null!==(i=r.exec(o))&&(s=i.index,l=s+i[0].length,!(n.cht.args.length?void ze(e,e.getOption("theme")):void e.setOption("theme",t.args[0])},map:function(e,t,n){var o=t.args;return!o||2>o.length?void(e&&ze(e,"Invalid mapping: "+t.input)):void Wt.map(o[0],o[1],n)},imap:function(e,t){this.map(e,t,"insert")},nmap:function(e,t){this.map(e,t,"normal")},vmap:function(e,t){this.map(e,t,"visual")},unmap:function(e,t,n){var o=t.args;return!o||1>o.length?void(e&&ze(e,"No such mapping: "+t.input)):void Wt.unmap(o[0],n)},move:function(e,t){Ot.processCommand(e,e.state.vim,{type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var n=t.args,o=t.setCfg||{};if(!n||1>n.length)return void(e&&ze(e,"Invalid mapping: "+t.input));var r=n[0].split("="),i=r[0],s=r[1],l=!1;if("?"==i.charAt(i.length-1)){if(s)throw Error("Trailing characters: "+t.argString);i=i.substring(0,i.length-1),l=!0}void 0===s&&"no"==i.substring(0,2)&&(i=i.substring(2),s=!1);var d=At[i]&&"boolean"==At[i].type;if(d&&void 0==s&&(s=!0),!d&&void 0===s||l){var c=O(i,e,o);c instanceof Error?ze(e,c.message):!0===c||!1===c?ze(e," "+(c?"":"no")+i):ze(e," "+i+"="+c)}else{var p=_(i,s,e,o);p instanceof Error&&ze(e,p.message)}},setlocal:function(e,t){t.setCfg={scope:"local"},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:"global"},this.set(e,t)},registers:function(e,t){var n=t.args,o=Lt.registerController.registers,r="----------Registers----------

";if(!n)for(var s in o){var l=o[s].toString();l.length&&(r+="\""+s+" "+l+"
")}else{var s;n=n.join("");for(var d=0;d"}}ze(e,r)},sort:function(e,n){function o(e,t){if(l){var n;n=e,e=t,t=n}d&&(e=e.toLowerCase(),t=t.toLowerCase());var o=u&&x.exec(e),r=u&&x.exec(t);return o?(o=parseInt((o[1]+o[2]).toLowerCase(),v),r=parseInt((r[1]+r[2]).toLowerCase(),v),o-r):e");if(!d)return void ze(e,u);var h=0,g=function(){if(h=u)return void ze(e,"Invalid argument: "+n.argString.substring(i));for(var m=0,h;m<=u-p;m++)h=d(p+m),delete o.marks[h]}else return void ze(e,"Invalid argument: "+l+"-")}else delete o.marks[s]}}},Wt=new qt;return t.keyMap.vim={attach:m,detach:u,call:b},L("insertModeEscKeysTimeout",200,"number"),t.keyMap["vim-insert"]={fallthrough:["default"],attach:m,detach:u,call:b},t.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:m,detach:u,call:b},R(),{buildKeyMap:function(){},getRegisterController:function(){return Lt.registerController},resetVimGlobalState_:R,getVimGlobalState_:function(){return Lt},maybeInitVimState_:D,suppressErrorLogging:!1,InsertModeKey:mt,map:function(e,t,n){Wt.map(e,t,n)},unmap:function(e,t){Wt.unmap(e,t)},setOption:_,getOption:O,defineOption:L,defineEx:function(e,t,n){if(!t)t=e;else if(0!==e.indexOf(t))throw new Error("(Vim.defineEx) \""+t+"\" is not a prefix of \""+e+"\", command not registered");jt[e]=n,Wt.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,n){var o=this.findKey(e,t,n);if("function"==typeof o)return o()},findKey:function(n,o,r){function i(){var e=Lt.macroModeState;if(e.isRecording){if("q"==o)return e.exitMacroRecordMode(),F(n),!0;"mapping"!=r&&it(e,o)}}function s(){if(""==o)return F(n),d.visualMode?ge(n):d.insertMode&&ot(n),!0}function l(e){for(var r;e;)r=/<\w+-.+?>|<\w+>|./.exec(e),o=r[0],e=e.substring(r.index+o.length),t.Vim.handleKey(n,o,"mapping")}var d=D(n),c;return c=d.insertMode?function(){if(s())return!0;for(var t=d.inputState.keyBuffer+=o,r=1==o.length,l=Ot.matchCommand(t,e,d.inputState,"insert");1=r?-1:l.lastIndexOf(o,r-1),-1==d){if(1==i)break;i=1,r=l.length;continue}if(1==i&&dx&&(x=i.length),0>v&&(v=i.length),b=o(x,v),b==i.length)break;if(e.getTokenTypeAt(t.Pos(y,b+1))==u)if(b==x)++m;else if(! --m){g=y,f=b;break outer}++b}return null==g||s==g&&f==p?void 0:{from:t.Pos(s,p),to:t.Pos(g,f)}}}),t.registerHelper("fold","import",function(n,e){function r(r){if(rn.lastLine())return null;var s=n.getTokenAt(t.Pos(r,1));if(/\S/.test(s.string)||(s=n.getTokenAt(t.Pos(r,s.end+1))),"keyword"!=s.type||"import"!=s.string)return null;for(var l=r,i=o(n.lastLine(),r+10);l<=i;++l){var e=n.getLine(l),d=e.indexOf(";");if(-1!=d)return{startCh:s.end,end:t.Pos(l,d)}}}var i=e.line,s=r(i),l;if(!s||r(i-1)||(l=r(i-2))&&l.end.line==i-1)return null;for(var d=s.end,c;;){if(c=r(d.line+1),null==c)break;d=c.end}return{from:n.clipPos(t.Pos(i,s.startCh+1)),to:d}}),t.registerHelper("fold","include",function(e,n){function o(n){if(ne.lastLine())return null;var o=e.getTokenAt(t.Pos(n,1));if(/\S/.test(o.string)||(o=e.getTokenAt(t.Pos(n,o.end+1))),"meta"==o.type&&"#include"==o.string.slice(0,8))return o.start+8}var r=n.line,i=o(r);if(null==i||null!=o(r-1))return null;for(var s=r,l;;){if(l=o(s+1),null==l)break;++s}return{from:t.Pos(r,i+1),to:e.clipPos(t.Pos(s))}})})}}); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index bea94a9..e4360c5 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -2,9 +2,15 @@ const fs = require('fs'); const gulp = require('gulp'); +const runSequence = require('run-sequence'); const useref = require('gulp-useref'); const cleanCSS = require('gulp-clean-css'); +const rename = require('gulp-rename'); +const concat = require('gulp-concat'); const babelMinify = require('babel-minify'); +const child_process = require('child_process'); +const merge = require('merge-stream'); +const zip = require('gulp-zip'); function minifyJs(fileName) { const content = fs.readFileSync(fileName, 'utf8'); @@ -14,39 +20,85 @@ function minifyJs(fileName) { `[${fileName}]: ${content.length}kb -> ${minifiedContent.length}kb` ); } -gulp.task('copyFiles', [], function() { - gulp - .src('src/lib/codemirror/theme/*') - .pipe(gulp.dest('app/lib/codemirror/theme')); - gulp - .src('src/lib/codemirror/mode/**/*') - .pipe(gulp.dest('app/lib/codemirror/mode')); - gulp.src('src/lib/transpilers/*').pipe(gulp.dest('app/lib/transpilers')); - gulp.src('src/partials/*').pipe(gulp.dest('app/partials')); - gulp.src('src/lib/screenlog.js').pipe(gulp.dest('app/lib')); - gulp.src('src/preview.html').pipe(gulp.dest('app')); - gulp.src('src/detached-window.js').pipe(gulp.dest('app')); - gulp.src('src/icon-48.png').pipe(gulp.dest('app')); - gulp.src('src/icon-128.png').pipe(gulp.dest('app')); - gulp.src('src/patreon.png').pipe(gulp.dest('app')); - gulp - .src([ - 'src/FiraCode.ttf', - 'src/FixedSys.ttf', - 'src/Inconsolata.ttf', - 'src/Monoid.ttf' - ]) - .pipe(gulp.dest('app')); +gulp.task('runWebpack', function() { + return child_process.execSync('yarn run build'); }); -gulp.task('useRef', ['copyFiles'], function() { +gulp.task('copyFiles', function() { + return merge( + gulp + .src('src/lib/codemirror/theme/*') + .pipe(gulp.dest('app/lib/codemirror/theme')), + gulp + .src('src/lib/codemirror/mode/**/*') + .pipe(gulp.dest('app/lib/codemirror/mode')), + gulp.src('src/lib/transpilers/*').pipe(gulp.dest('app/lib/transpilers')), + gulp.src('src/lib/screenlog.js').pipe(gulp.dest('app/lib')), + gulp.src('icons/*').pipe(gulp.dest('app/icons')), + gulp + .src([ + 'src/preview.html', + 'src/detached-window.js', + 'src/icon-48.png', + 'src/icon-128.png', + 'src/patreon.png', + 'manifest.json' + ]) + .pipe(gulp.dest('app')), + + gulp + .src('build/bundle.*.js') + .pipe(rename('script.js')) + .pipe(gulp.dest('app')), + gulp + .src('build/vendor.*.js') + .pipe(rename('vendor.js')) + .pipe(gulp.dest('app')), + + // Following CSS are copied to build/ folder where they'll be referenced by + // useRef plugin to concat into one. + gulp + .src('src/lib/codemirror/lib/codemirror.css') + .pipe(gulp.dest('build/lib/codemirror/lib')), + gulp + .src('src/lib/codemirror/addon/hint/show-hint.css') + .pipe(gulp.dest('build/lib/codemirror/addon/hint')), + gulp + .src('src/lib/codemirror/addon/fold/foldgutter.css') + .pipe(gulp.dest('build/lib/codemirror/addon/fold')), + gulp + .src('src/lib/codemirror/addon/dialog/dialog.css') + .pipe(gulp.dest('build/lib/codemirror/addon/dialog')), + gulp.src('src/lib/hint.min.css').pipe(gulp.dest('build/lib')), + gulp.src('src/lib/inlet.css').pipe(gulp.dest('build/lib')), + gulp.src('src/style.css').pipe(gulp.dest('build')), + + gulp + .src([ + 'src/FiraCode.ttf', + 'src/FixedSys.ttf', + 'src/Inconsolata.ttf', + 'src/Monoid.ttf' + ]) + .pipe(gulp.dest('app')) + ); +}); + +gulp.task('useRef', function() { return gulp - .src('src/index.html') + .src('build/index.html') .pipe(useref()) .pipe(gulp.dest('app')); }); -gulp.task('minify', ['useRef'], function() { +gulp.task('concatSwRegistration', function() { + gulp + .src(['src/service-worker-registration.js', 'app/script.js']) + .pipe(concat('script.js')) + .pipe(gulp.dest('app')); +}); + +gulp.task('minify', function() { minifyJs('app/script.js'); minifyJs('app/vendor.js'); minifyJs('app/lib/screenlog.js'); @@ -54,15 +106,37 @@ gulp.task('minify', ['useRef'], function() { gulp .src('app/*.css') .pipe( - cleanCSS({ debug: true }, details => { - console.log(`${details.name}: ${details.stats.originalSize}`); - console.log(`${details.name}: ${details.stats.minifiedSize}`); - }) + cleanCSS( + { + debug: true + }, + details => { + console.log(`${details.name}: ${details.stats.originalSize}`); + console.log(`${details.name}: ${details.stats.minifiedSize}`); + } + ) ) .pipe(gulp.dest('app')); }); -gulp.task('generate-service-worker', ['minify'], function(callback) { +gulp.task('fixIndex', function() { + var contents = fs.readFileSync('build/index.html', 'utf8'); + // Replace hashed-filename script tags with unhashed ones + contents = contents.replace( + /\<\!\-\- SCRIPT-TAGS \-\-\>[\S\s]*?\<\!\-\- END-SCRIPT-TAGS \-\-\>/, + '' + ); + + // vendor.hash.js gets created outside our markers, so remove it + contents = contents.replace( + /\ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..7ab1031 --- /dev/null +++ b/src/index.js @@ -0,0 +1,3 @@ +import App from './components/app.jsx'; + +export default App; diff --git a/src/itemService.js b/src/itemService.js index eaab316..c8e0647 100644 --- a/src/itemService.js +++ b/src/itemService.js @@ -1,233 +1,237 @@ -(() => { - window.itemService = { - async getItem(id) { - var remoteDb = await window.db.getDb(); - return remoteDb - .doc(`items/${id}`) - .get() - .then(doc => { - return doc.data(); - }); - }, - async getUserItemIds() { - if (window.user) { - return new Promise(resolve => { - resolve(window.user.items || {}); - }); - } - var remoteDb = await window.db.getDb(); - return remoteDb - .doc(`users/${window.user.uid}`) - .get() - .then(doc => { - if (!doc.exists) { - return {}; - } - return doc.data().items; - }); - }, +import { deferred } from './deferred'; +import { log } from 'util'; - async getAllItems() { - var t=Date.now() - var d = deferred(); - let itemIds = await this.getUserItemIds(); - itemIds = Object.getOwnPropertyNames(itemIds || {}); - utils.log('itemids', itemIds); +export const itemService = { + async getItem(id) { + var remoteDb = await window.db.getDb(); + return remoteDb + .doc(`items/${id}`) + .get() + .then(doc => { + return doc.data(); + }); + }, + async getUserItemIds() { + if (window.user) { + return new Promise(resolve => { + resolve(window.user.items || {}); + }); + } + var remoteDb = await window.db.getDb(); + return remoteDb + .doc(`users/${window.user.uid}`) + .get() + .then(doc => { + if (!doc.exists) { + return {}; + } + return doc.data().items; + }); + }, - if (!itemIds.length) { - d.resolve([]); - } - var remoteDb = await window.db.getDb(); - const items = []; - remoteDb - .collection('items') - .where('createdBy', '==', window.user.uid) - .onSnapshot(function(querySnapshot) { + async getAllItems() { + var t = Date.now(); + var d = deferred(); + let itemIds = await this.getUserItemIds(); + itemIds = Object.getOwnPropertyNames(itemIds || {}); + log('itemids', itemIds); + + if (!itemIds.length) { + d.resolve([]); + } + var remoteDb = await window.db.getDb(); + const items = []; + remoteDb + .collection('items') + .where('createdBy', '==', window.user.uid) + .onSnapshot( + function(querySnapshot) { querySnapshot.forEach(function(doc) { items.push(doc.data()); }); - utils.log('Items fetched in ', Date.now()-t, 'ms') + log('Items fetched in ', Date.now() - t, 'ms'); d.resolve(items); - }, function() { - d.resolve([]) - }); - return d.promise; - }, - - async setUser() { - const remoteDb = await window.db.getDb(); - return remoteDb.doc(`users/${window.user.uid}`).set({ - items: {} - }); - }, - - async setItem(id, item) { - const d = deferred(); - var remotePromise; - // TODO: check why we need to save locally always? - const obj = { - [id]: item - }; - db.local.set(obj, () => { - // Is extension OR is app but logged out OR is logged in but offline - // If logged in but offline, resolve immediately so - // that you see the feedback msg immediately and not wait for - // later sync. - if (window.IS_EXTENSION || !window.user || !navigator.onLine) { - d.resolve(); + }, + function() { + d.resolve([]); } - }); + ); + return d.promise; + }, - // If `id` is `code`, this is a call on unloadbefore to save the last open thing. - // Do not presist that on remote. - if (id === 'code') { - // No deferred required here as this gets called on unloadbefore - return false; - } - if (window.user) { - var remoteDb = await window.db.getDb(); - utils.log(`Starting to save item ${id}`); - item.createdBy = window.user.uid; - remotePromise = remoteDb - .collection('items') - .doc(id) - .set(item, { - merge: true - }) - .then(arg => { - utils.log('Document written', arg); - d.resolve(); - }) - .catch(d.reject); - } + async setUser() { + const remoteDb = await window.db.getDb(); + return remoteDb.doc(`users/${window.user.uid}`).set({ + items: {} + }); + }, - return window.user && navigator.onLine ? remotePromise : d.promise; - }, - - /** - * Saves the passed items in the database. - * @param {Array} items to be saved in DB - */ - saveItems(items) { - var d = deferred(); - // When not logged in - if (!window.user) { - // save new items - window.db.local.set(items, d.resolve); - // Push in new item IDs - window.db.local.get( - { - items: {} - }, - function(result) { - /* eslint-disable guard-for-in */ - for (var id in items) { - result.items[id] = true; - } - window.db.local.set({ - items: result.items - }); - /* eslint-enable guard-for-in */ - } - ); - } else { - window.db.getDb().then(remoteDb => { - const batch = remoteDb.batch(); - /* eslint-disable guard-for-in */ - for (var id in items) { - items[id].createdBy = window.user.uid; - batch.set(remoteDb.doc(`items/${id}`), items[id]); - batch.update(remoteDb.doc(`users/${window.user.uid}`), { - [`items.${id}`]: true - }); - // Set these items on our cached user object too - window.user.items = window.user.items || {}; - window.user.items[id] = true; - } - batch.commit().then(d.resolve); - /* eslint-enable guard-for-in */ - }); + async setItem(id, item) { + const d = deferred(); + var remotePromise; + // TODO: check why we need to save locally always? + const obj = { + [id]: item + }; + db.local.set(obj, () => { + // Is extension OR is app but logged out OR is logged in but offline + // If logged in but offline, resolve immediately so + // that you see the feedback msg immediately and not wait for + // later sync. + if (window.IS_EXTENSION || !window.user || !navigator.onLine) { + d.resolve(); } - return d.promise; - }, + }); - async removeItem(id) { - // When not logged in - if (!window.user) { - var d = deferred(); - db.local.remove(id, d.resolve); - return d.promise; - } - const remoteDb = await window.db.getDb(); - utils.log(`Starting to save item ${id}`); - return remoteDb + // If `id` is `code`, this is a call on unloadbefore to save the last open thing. + // Do not presist that on remote. + if (id === 'code') { + // No deferred required here as this gets called on unloadbefore + return false; + } + if (window.user) { + var remoteDb = await window.db.getDb(); + log(`Starting to save item ${id}`); + item.createdBy = window.user.uid; + remotePromise = remoteDb .collection('items') .doc(id) - .delete() - .then(arg => { - utils.log('Document removed', arg); - }) - .catch(error => utils.log(error)); - }, - - async setItemForUser(itemId) { - // When not logged in - if (!window.user) { - return window.db.local.get( - { - items: {} - }, - function(result) { - result.items[itemId] = true; - window.db.local.set({ - items: result.items - }); - } - ); - } - const remoteDb = await window.db.getDb(); - return remoteDb - .collection('users') - .doc(window.user.uid) - .update({ - [`items.${itemId}`]: true + .set(item, { + merge: true }) .then(arg => { - utils.log(`Item ${itemId} set for user`, arg); - window.user.items = window.user.items || {}; - window.user.items[itemId] = true; + log('Document written', arg); + d.resolve(); }) - .catch(error => utils.log(error)); - }, - - async unsetItemForUser(itemId) { - // When not logged in - if (!window.user) { - return window.db.local.get( - { - items: {} - }, - function(result) { - delete result.items[itemId]; - db.local.set({ - items: result.items - }); - } - ); - } - const remoteDb = await window.db.getDb(); - return remoteDb - .collection('users') - .doc(window.user.uid) - .update({ - [`items.${itemId}`]: firebase.firestore.FieldValue.delete() - }) - .then(arg => { - delete window.user.items[itemId]; - utils.log(`Item ${itemId} unset for user`, arg); - }) - .catch(error => utils.log(error)); + .catch(d.reject); } - }; -})(); + + return window.user && navigator.onLine ? remotePromise : d.promise; + }, + + /** + * Saves the passed items in the database. + * @param {Array} items to be saved in DB + */ + saveItems(items) { + var d = deferred(); + // When not logged in + if (!window.user) { + // save new items + window.db.local.set(items, d.resolve); + // Push in new item IDs + window.db.local.get( + { + items: {} + }, + function(result) { + /* eslint-disable guard-for-in */ + for (var id in items) { + result.items[id] = true; + } + window.db.local.set({ + items: result.items + }); + /* eslint-enable guard-for-in */ + } + ); + } else { + window.db.getDb().then(remoteDb => { + const batch = remoteDb.batch(); + /* eslint-disable guard-for-in */ + for (var id in items) { + items[id].createdBy = window.user.uid; + batch.set(remoteDb.doc(`items/${id}`), items[id]); + batch.update(remoteDb.doc(`users/${window.user.uid}`), { + [`items.${id}`]: true + }); + // Set these items on our cached user object too + window.user.items = window.user.items || {}; + window.user.items[id] = true; + } + batch.commit().then(d.resolve); + /* eslint-enable guard-for-in */ + }); + } + return d.promise; + }, + + async removeItem(id) { + // When not logged in + if (!window.user) { + var d = deferred(); + window.db.local.remove(id, d.resolve); + return d.promise; + } + const remoteDb = await window.db.getDb(); + log(`Starting to save item ${id}`); + return remoteDb + .collection('items') + .doc(id) + .delete() + .then(arg => { + log('Document removed', arg); + }) + .catch(error => log(error)); + }, + + async setItemForUser(itemId) { + // When not logged in + if (!window.user) { + return window.db.local.get( + { + items: {} + }, + function(result) { + result.items[itemId] = true; + window.db.local.set({ + items: result.items + }); + } + ); + } + const remoteDb = await window.db.getDb(); + return remoteDb + .collection('users') + .doc(window.user.uid) + .update({ + [`items.${itemId}`]: true + }) + .then(arg => { + log(`Item ${itemId} set for user`, arg); + window.user.items = window.user.items || {}; + window.user.items[itemId] = true; + }) + .catch(error => log(error)); + }, + + async unsetItemForUser(itemId) { + // When not logged in + if (!window.user) { + return window.db.local.get( + { + items: {} + }, + function(result) { + delete result.items[itemId]; + window.db.local.set({ + items: result.items + }); + } + ); + } + const remoteDb = await window.db.getDb(); + return remoteDb + .collection('users') + .doc(window.user.uid) + .update({ + [`items.${itemId}`]: firebase.firestore.FieldValue.delete() + }) + .then(arg => { + delete window.user.items[itemId]; + log(`Item ${itemId} unset for user`, arg); + }) + .catch(error => log(error)); + } +}; diff --git a/src/lib/emmet.js b/src/lib/emmet.js deleted file mode 100644 index ca49a2e..0000000 --- a/src/lib/emmet.js +++ /dev/null @@ -1,4 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e():"function"==typeof define&&define.amd?define(e):e()}(0,function(){"use strict";function t(t){return t===Er||t===qr}function e(e){var n=e.pos,r=e.prev();if(t(r))for(;!e.sol();)if(e.prev()===r&&e.peek()!==zr)return!0;return e.pos=n,!1}function n(t){return r(t)||i(t)}function r(t){var n=t.pos;return!!(e(t)&&t.eat(Lr)&&o(t))||(t.pos=n,!1)}function i(t){var e=t.pos;return!!(t.eatWhile(c)&&t.eat(Lr)&&o(t))||(t.pos=e,!1)}function o(t){return t.eatWhile(a)}function a(t){return t===Rr||s(t)||u(t)}function s(t){return(t&=-33)>=65&&t<=90}function u(t){return t>47&&t<58}function l(t){return t===Mr||t===Tr}function c(e){return e&&e!==Lr&&!l(e)&&!t(e)}function f(t,e,n){e=Math.min(t.length,Math.max(0,null==e?t.length:e)),null!=n&&!0!==n||(e=p(t,e));var r,i=new Sr(t);i.pos=e;for(var o=[];!i.sol();){if(r=i.peek(),g(r))o.push(r);else if(m(r)){if(o.pop()!==Gr.get(r))break}else{if(h(o,Pr)||h(o,Dr)){i.pos--;continue}if(Nr(i)||!d(r))break}i.pos--}if(!o.length&&i.pos!==e){var a=t.slice(i.pos,e).replace(/^[\*\+\>\^]+/,"");return{abbreviation:a,location:e-a.length}}}function p(e,n){for(t(e.charCodeAt(n))&&n++;g(e.charCodeAt(n));)n++;return n}function h(t,e){return-1!==t.indexOf(e)}function d(t){return t>64&&t<91||t>96&&t<123||t>47&&t<58||Yr.has(t)}function m(t){return t===Wr||t===Ur||t===Br}function g(t){return t===Pr||t===Ir||t===Dr}function b(t,e){return e&&(t="upper"===e?t.toUpperCase():t.toLowerCase()),t}function v(t,e){return t instanceof Kr?t:"string"==typeof t?new Kr(t,e):t&&"object"==typeof t?new Kr(t.name,t.value,t.options):void 0}function y(t){return String(t).trim()}function x(t,e,n){return t&&n.indexOf(t)===e}function w(t){return t===ri||t===ii}function k(t){return t>47&&t<58}function $(t,e,n){return e=e||65,n=n||90,(t&=-33)>=e&&t<=n}function C(t){return k(t)||$(t)}function A(t){return 32===t||9===t||160===t}function O(t){return A(t)||10===t||13===t}function j(t,e,n,r){r=r?Object.assign({},si,r):si;var i=t.pos;if(t.eat(e)){for(var o,a=1;!t.eof();)if(!ai(t,r))if((o=t.next())===e)a++;else if(o===n){if(!--a)return t.start=i,!0}else o===r.escape&&t.next();if(t.pos=i,r.throws)throw t.error("Unable to find matching pair for "+String.fromCharCode(e))}return!1}function _(t){var e={};t.charCodeAt(0)===hi&&(t=t.slice(1),e.implied=!0),t.charCodeAt(t.length-1)===di&&(t=t.slice(0,t.length-1),e.boolean=!0);var n={name:t};return Object.keys(e).length&&(n.options=e),n}function S(t){var e=t.pos;if(t.eatWhile(E))return t.start=e,!0}function E(t){return!O(t)&&!w(t)&&t!==gi&&t!==bi&&t!==mi}function q(t){return t.start=t.pos,t.eatWhile(z),t.current()}function z(t){return C(t)||45===t||58===t||36===t||64===t||33===t||95===t||37===t}function T(t){for(var e,n=new ni(t.trim()),r=new ti,i=r,o=[];!n.eof();)if((e=n.peek())!==wi)if(e!==ki){var a=xi(n);if(i.appendChild(a),n.eof())break;switch(n.peek()){case $i:n.next();continue;case Ci:n.next(),i=a;continue;case Ai:for(;n.eat(Ai);)i=i.parent||i;continue}}else{var s=o.pop();if(!s)throw n.error('Unexpected ")" group end');var u=s[0];if(i=s[1],n.next(),u.repeat=ui(n))i.appendChild(u);else{for(;u.firstChild;)i.appendChild(u.firstChild);n.eat($i)}}else{var l=new ti,c=o.length?M(o)[0]:i;o.push([l,c,n.pos]),i=l,n.next()}if(o.length)throw n.pos=o.pop()[2],n.error("Expected group close");return r}function M(t){return t[t.length-1]}function R(t){if(t.repeat&&t.repeat.count){for(var e=1;e=0;r--){var i=e[r];t=t.substring(0,i[0])+("function"==typeof n?n(t.substr(i[0],i[1])):n)+t.substring(i[0]+i[1])}return t}function D(t,e){return[t,e]}function Y(t){var e=G(t);if(e&&null!=e.value){var n=e.value;t.name=V(t.name,n),t.value=V(t.value,n),t.attributes.forEach(function(e){var r=t.getAttribute(e.name).clone();r.name=V(e.name,n),r.value=V(e.value,n),t.replaceAttribute(e.name,r)})}return t}function G(t){for(;t;){if(t.repeat)return t.repeat;t=t.parent}}function V(t,e){if("string"==typeof t){return H(t,X(t),e)}return t}function X(t){return I(t||"",qi).reduce(function(e,n){if(!/[#{]/.test(t[n[0]+1]||"")){var r=e[e.length-1];r&&r[0]+r[1]===n[0]?r[1]+=n[1]:e.push(n)}return e},[])}function H(t,e,n){return Z(B(t,e,function(t){for(var e=String(n);e.length1?n.length:0;t.parent&&r--;)t=t.parent;return e.get(t)}function ut(t,e){return t.filter(e)[0]}function lt(t,e,n){var r=t.getAttribute(e);r&&(r.name=n)}function ct(t,e){return e=e||{},t.walk(function(t){return ft(t,e)}),t}function ft(t,e){for(var n=t.attributes,r=0,i=n.length;rr&&(r=t.index)}),-1!==r&&(e.index=r+1),n}function At(t,e){if(null==t)return t;for(var n,r,i=[],o=function(t,n,r,i){return null!=e[r]?n+e[r]+i:""},a="",s=0,u=0;u",r.selfClosing||(t.close=""),It(t,n.comment)}(r.value||!r.children.length&&!r.selfClosing)&&(t.text=t.renderFields(r.value))}return t})}function Mt(t,e){var n=t.node;if(Rt(n,e)){t.indent=e.indent(Ut(n,e)),t.newline="\n";var r=t.newline+t.indent;_t(n.parent)&&jt(n)||(t.beforeOpen=r,n.isTextOnly&&(t.beforeText=r)),Nt(n,e)&&(n.isTextOnly||(t.beforeText=r+e.indent(1)),t.beforeClose=r)}return t}function Rt(t,e){return!!e.get("format")&&((!t.parent.isTextOnly||1!==t.parent.children.length||!dt(t.parent.value).fields.length)&&(!Wt(t,e)||Lt(t,e)))}function Lt(t,e){if(!Wt(t,e))return!1;if(St(t))return!0;if(0===t.childIndex){for(var n=t;n=n.nextSibling;)if(!Wt(n,e))return!0}else if(!Wt(t.previousSibling,e))return!0;if(e.get("inlineBreak")){for(var r=1,i=t,o=t;Pt(i=i.previousSibling,e);)r++;for(;Pt(o=o.nextSibling,e);)r++;if(r>=e.get("inlineBreak"))return!0}for(var a=0,s=t.children.length;a>4).toString(16)}function se(t){return ue(t.toString(16),2)}function ue(t,e){for(;t.length=i&&(i=s,r=a)}return r}function ze(t,e){var n=t&&"object"==typeof t?t[e]:t,r=(n||"").match(/^[\w-@]+/);return r?r[0]:n}function Te(t,e){for(var n=0,r=0;nr&&(e=e.slice(0,r-1).concat(e.slice(r-1).join(", ")));e.length;){var i=e.shift(),o=n.fields.shift(),a=i.length-o.length;n.string=n.string.slice(0,o.location)+i+n.string.slice(o.location+o.length);for(var s=0,u=n.fields.length;s3&&e<=6?De(0,1):e>6&&e<=12?De(0,2):De(1,4);for(var i=0,o=void 0;i1)return!0;t=t.parent}return!1}function Je(t,e){return e=e||{},"string"==typeof t&&(t=Ke(t,e)),xo(t,e.profile,e.syntax,e.format)}function Ke(t,e){return Oi(t).use(Hi,e.text,e.addons).use(ji,e.snippets).use(ct,e.variables)}function tn(t,e){return e=e||{},"string"==typeof t&&(t=en(t,e)),na(t,e.profile,e.syntax,e.format)}function en(t,e){return"string"==typeof t&&(t=Do(t)),t.use(Ko,e.snippets)}function nn(t){var e={},n=t.name.match(pa);return n[1]&&(e.lang=n[1]),n[2]&&(e.wordCount=+n[2]),fa(t,e)}function rn(t,e){return e=sn(e),un(e.syntax)?tn(t,e):Je(t,e)}function on(t,e){return e=sn(e),un(e.syntax)?en(t,e):Ke(t,e)}function an(t,e){return e instanceof Jr?e:ha(un(t)?"css":t,e)}function sn(t){return"string"==typeof t&&(t={syntax:t}),t=Object.assign({},ga,t),t.format=Object.assign({field:t.field},t.format),t.profile=ln(t),t.variables=Object.assign({},da,t.variables),t.snippets=an(un(t.syntax)?"css":t.syntax,t.snippets),t}function un(t){return ma.has(t)}function ln(t){return t.profile instanceof Xr?t.profile:new Xr(t.profile)}function cn(t,e){var n=t.getModeAt(e||t.getCursor()),r="xml"===n.name?"html":n.name;if(fn(r))return r;var i=t.getOption("emmet");return i&&fn(i.syntax)?i.syntax:null}function fn(t){return ba.has(t)}function pn(t,e){var n=cn(t,e);return n&&(!ya[n]||ya[n](t,e))}function hn(t){return t.getOption("indentWithTabs")?"\t":gn(" ",t.getOption("indentUnit"))}function dn(t,e,n){var r=mn(e),i=hn(t);return"\t"!==i&&(r=r.map(function(t){return t.replace(/^\t+/,function(t){return gn(i,t.length)})})),n&&(r=r.map(function(t,e){return e?n+t:t})),r.join("\n")}function mn(t){return Array.isArray(t)?t:t.split(/\r\n|\r|\n/g)}function gn(t,e){for(var n="";00&&yn(e,t.to)<0:yn(e,t.from)>=0&&yn(e,t.to)<=0}function yn(t,e){return t.line-e.line||t.ch-e.ch}function xn(t,e,n){return rn(t,Object.assign({syntax:cn(e),field:wa},An(e),n))}function wn(t,e){return on(t,Object.assign({syntax:cn(e)},An(e)))}function kn(t,e){return e=e||e.getCursor(),f(t.getLine(e.line),e.ch,!0)}function $n(t,e){try{return{ast:wn(t,e),abbreviation:t,snippet:xn(t,e)}}catch(t){return null}}function Cn(t,e,n){var r,i=!1,o=0;try{r=xn(e,t,{field:function(t,e){return void 0===e&&(e=""),i||(i=!0,o=e.length,e=xa+e),e}})}catch(t){return!1}var a=t.getLine(n.from.line),s=a.match(/^\s+/);r=dn(t,r,s&&s[0]);var u=r.length;return i&&(u=r.indexOf(xa),r=r.slice(0,u)+r.slice(u+xa.length)),t.operation(function(){t.replaceRange(r,n.from,n.to);var e=t.indexFromPos(n.from),i=t.posFromIndex(u+e);return o?t.setSelection(i,{line:i.line,ch:i.ch+o}):t.setCursor(i),!0})}function An(t,e){var n=t.getModeAt(e||t.getCursor()),r=t.getOption("emmet"),i=r&&r.profile;return"xml"===n.name&&(i=Object.assign({selfClosingStyle:n.configuration},i)),Object.assign({profile:i,snippets:On(t,cn(t,e))},r)}function On(t,e){var n=t.getOption("emmet");if(n)return un(e)?n.stylesheetSnippets:n.markupSnippets}function jn(t){var e=_n(t,t.getCursor());e&&zn(t,e)||(En(t),pn(t)&&Sn(t,t.getCursor()))}function _n(t,e){for(var n=t.findMarksAt(e),r=0;r\^\+\(\)]/.test(t[e-i.length-1]))?i:null}function Dn(t){return t===za||t===Ta}function Yn(t){return t>47&&t<58}function Gn(t,e,n){return e=e||65,n=n||90,(t&=-33)>=e&&t<=n}function Vn(t){return Yn(t)||Gn(t)}function Xn(t){return 32===t||9===t||160===t}function Hn(t){return Xn(t)||10===t||13===t}function Zn(t,e,n,r){r=r?Object.assign({},La,r):La;var i=t.pos;if(t.eat(e)){for(var o,a=1;!t.eof();)if(!Ra(t,r))if((o=t.next())===e)a++;else if(o===n){if(!--a)return t.start=i,!0}else o===r.escape&&t.next();if(t.pos=i,r.throws)throw t.error("Unable to find matching pair for "+String.fromCharCode(e))}return!1}function Qn(t,e){var n=t.pos;if(t.eatWhile(e))return new Pa(t,n,t.pos);t.pos=n}function Jn(t){return Ba(t)||Wa(t,tr)}function Kn(t){var e=t.pos;if(Ra(t)){var n,r,i=t.pos;t.pos=e,t.next(),n=t.start=t.pos,t.pos=i,t.backUp(1),r=t.pos;var o=Wa(t,n,r);return t.pos=i,o}return Ba(t)||nr(t)}function tr(t){return t!==Ya&&!er(t)&&!Hn(t)}function er(t){return t===Ga||t===Da}function nr(t){return Wa(t,rr)}function rr(t){return!(isNaN(t)||Dn(t)||Hn(t)||er(t))}function ir(t){return Wa(t,or)}function or(t){return Vn(t)||t===Za||t===Ha||t===Xa||t===Qa}function ar(t,e){for(var n=t.pos,r=0;r"))},new Map),l=[a];!o.eof();)if(n=cr(o))if(i=pr(n),"open"===n.type)r=new Na(o,"tag",n),hr(l).addChild(r),u.has(i)?r.close=fr(o,u.get(i)):function(t,n){return t.selfClosing||!e.xml&&s.has(n)}(n,i)||l.push(r);else if("close"===n.type){for(var c=l.length-1;c>0;c--)if(l[c].name.toLowerCase()===i){l[c].close=n,l=l.slice(0,c);break}}else hr(l).addChild(new Na(o,n.type,n));else o.next();return a}function cr(t){if(60===t.peek())return es(t)||is(t)||Ja(t)}function fr(t,e){for(var n=t.pos;!t.eof();){if(ar(t,e))return t.pos=t.start,Ja(t);t.next()}return t.pos=n,null}function pr(t){return t.name?t.name.value.toLowerCase():"#"+t.type}function hr(t){return t[t.length-1]}function dr(t){return{from:t.start,to:t.end}}function mr(t,e){var n=new us(t),r="xml"===e;try{return new as(lr(n,{xml:r}),"html",e||"html")}catch(t){console.warn(t)}}function gr(t){return mr(t,yr(t))}function br(t){return t.state._emmetModel||(t.state._emmetModel=gr(t)),t.state._emmetModel}function vr(t){t.state._emmetModel=null}function yr(t){var e=t.getMode();return"htmlmixed"===e.name?"html":"xml"===e.name?e.configuration:e.name}function xr(t,e){e=e||t.getCursor();var n=wr(t);if(n)if(vn(n.open.find(),e)){if(!n.close||Ar(t,n.open)===Ar(t,n.close))return n}else if(n.close&&vn(n.close.find(),e)&&Ar(t,n.open)===Ar(t,n.close))return n;kr(t);var r=$r(t,e);if(r&&"tag"===r.type)return{open:Cr(t,r.open.name,ls),close:r.close&&Cr(t,r.close.name,cs)}}function wr(t){var e,n;return t.getAllMarks().forEach(function(t){t.className===ls?e=t:t.className===cs&&(n=t)}),e?{open:e,close:n}:null}function kr(t){t.getAllMarks().forEach(function(t){t.className!==ls&&t.className!==cs||t.clear()})}function $r(t,e){var n=t.getEmmetDocumentModel();return n&&n.nodeForPoint(e||t.getCursor())}function Cr(t,e,n){return t.markText(e.start,e.end,{className:n,inclusiveLeft:!0,inclusiveRight:!0,clearWhenEmpty:!1})}function Ar(t,e){var n=e.find();return n?t.getRange(n.from,n.to):""}function Or(t,e){var n=wr(t),r=e.from;n&&(vn(n.open.find(),r)&&n.close?jr(t,n.open,n.close):n.close&&vn(n.close.find(),r)&&jr(t,n.close,n.open))}function jr(t,e,n){var r=_r(t,e),i=n.find(),o=r.match(/[\w:\-]+/),a=r?o&&o[0]:"";null!=a?t.getRange(i.from,i.to)!==a&&t.replaceRange(a,i.from,i.to):kr(t)}function _r(t,e){ -var n=e.find();return n?t.getRange(n.from,n.to):""}var Sr=function(t){this.string=t,this.pos=this.string.length};Sr.prototype.sol=function(){return 0===this.pos},Sr.prototype.peek=function(t){return this.string.charCodeAt(this.pos-1+(t||0))},Sr.prototype.prev=function(){if(!this.sol())return this.string.charCodeAt(--this.pos)},Sr.prototype.eat=function(t){var e="function"==typeof t?t(this.peek()):t===this.peek();return e&&this.pos--,e},Sr.prototype.eatWhile=function(t){for(var e=this.pos;this.eat(t););return this.pos/".split("").map(Fr)),Gr=(new Map).set(Wr,Pr).set(Ur,Ir).set(Br,Dr),Vr={indent:"\t",tagCase:"",attributeCase:"",attributeQuotes:"double",format:!0,formatSkip:["html"],formatForce:["body"],inlineBreak:3,compactBooleanAttributes:!1,booleanAttributes:["contenteditable","seamless","async","autofocus","autoplay","checked","controls","defer","disabled","formnovalidate","hidden","ismap","loop","multiple","muted","novalidate","readonly","required","reversed","selected","typemustmatch"],selfClosingStyle:"html",inlineElements:["a","abbr","acronym","applet","b","basefont","bdo","big","br","button","cite","code","del","dfn","em","font","i","iframe","img","input","ins","kbd","label","map","object","q","s","samp","select","small","span","strike","strong","sub","sup","textarea","tt","u","var"]},Xr=function(t){this.options=Object.assign({},Vr,t),this.quoteChar="single"===this.options.attributeQuotes?"'":'"'};Xr.prototype.get=function(t){return this.options[t]},Xr.prototype.quote=function(t){return""+this.quoteChar+(null!=t?t:"")+this.quoteChar},Xr.prototype.name=function(t){return b(t,this.options.tagCase)},Xr.prototype.attribute=function(t){return b(t,this.options.attributeCase)},Xr.prototype.isBooleanAttribute=function(t){return t.options.boolean||-1!==this.get("booleanAttributes").indexOf((t.name||"").toLowerCase())},Xr.prototype.selfClose=function(){switch(this.options.selfClosingStyle){case"xhtml":return" /";case"xml":return"/";default:return""}},Xr.prototype.indent=function(t){var e=this;t=t||0;for(var n="";t--;)n+=e.options.indent;return n},Xr.prototype.isInline=function(t){return"string"==typeof t?-1!==this.get("inlineElements").indexOf(t.toLowerCase()):null!=t.name?this.isInline(t.name):t.isTextOnly},Xr.prototype.field=function(t,e){return this.options.field(t,e)};var Hr=function(t,e){this.key=t,this.value=e},Zr=function(t){this._string=new Map,this._regexp=new Map,this._disabled=!1,this.load(t)},Qr={disabled:{}};Qr.disabled.get=function(){return this._disabled},Zr.prototype.disable=function(){this._disabled=!0},Zr.prototype.enable=function(){this._disabled=!1},Zr.prototype.set=function(t,e){var n=this;if("string"==typeof t)t.split("|").forEach(function(t){return n._string.set(t,new Hr(t,e))});else{if(!(t instanceof RegExp))throw new Error("Unknow snippet key: "+t);this._regexp.set(t,new Hr(t,e))}return this},Zr.prototype.get=function(t){var e=this;if(!this.disabled){if(this._string.has(t))return this._string.get(t);for(var n=Array.from(this._regexp.keys()),r=0,i=n.length;rthis.children.length)throw new Error("Unable to insert node: position is out of child list range");var n=this.children[e-1],r=this.children[e];t.remove(),t.parent=this,this.children.splice(e,0,t),n&&(t.previous=n,n.next=t),r&&(t.next=r,r.previous=t)},ti.prototype.removeChild=function(t){var e=this.children.indexOf(t);-1!==e&&(this.children.splice(e,1),t.previous&&(t.previous.next=t.next),t.next&&(t.next.previous=t.previous),t.parent=t.next=t.previous=null)},ti.prototype.remove=function(){this.parent&&this.parent.removeChild(this)},ti.prototype.clone=function(t){var e=new ti(this.name);return e.value=this.value,e.selfClosing=this.selfClosing,this.repeat&&(e.repeat=Object.assign({},this.repeat)),this._attributes.forEach(function(t){return e.setAttribute(t.clone())}),t&&this.children.forEach(function(t){return e.appendChild(t.clone(!0))}),e},ti.prototype.walk=function(t,e){e=e||0;for(var n=this.firstChild;n;){var r=n.next;if(!1===t(n,e)||!1===n.walk(t,e+1))return!1;n=r}},ti.prototype.use=function(t){for(var e=arguments,n=[this],r=1;r=this.end},ni.prototype.limit=function(t,e){return new this.constructor(this.string,t,e)},ni.prototype.peek=function(){return this.string.charCodeAt(this.pos)},ni.prototype.next=function(){if(this.possrc:m+img","ri:t|ri:type":"pic>src:t+img","!!!":"{}",doc:"html[lang=${lang}]>(head>meta[charset=${charset}]+meta:vp+meta:edge+title{${1:Document}})+body","!|html:5":"!!!+doc",c:"{\x3c!-- ${0} --\x3e}","cc:ie":"{\x3c!--[if IE]>${0}\x3c!--\x3e${0}\x3c!--"===n.string&&"tag bracket"===r.type&&"=this.end},qa.prototype.limit=function(t,e){return new this.constructor(this.string,t,e)},qa.prototype.peek=function(){return this.string.charCodeAt(this.pos)},qa.prototype.next=function(){if(this.pos"),is=function(t){var e=t.pos;if(sr(t,ns,rs,!0)){var n=Wa(t,e);return n.type="cdata",n}return null},os={xml:!1,special:["script","style"],empty:["img","meta","link","br","base","hr","area","wbr"]},as=function(t,e,n){this.dom=t,this.type=e,this.syntax=n};as.prototype.nodeForPoint=function(t,e){for(var n=this.dom.firstChild,r=null;n;)vn(dr(n),t,e)?(r=n,n=n.firstChild):n=n.nextSibling;return r};var ss=function(t,e,n){null==n&&"string"==typeof t&&(n=t.length),this.string=t,this.pos=this.start=e||0,this.end=n};ss.prototype.eof=function(){return this.pos>=this.end},ss.prototype.limit=function(t,e){return new this.constructor(this.string,t,e)},ss.prototype.peek=function(){return this.string.charCodeAt(this.pos)},ss.prototype.next=function(){if(this.pos=0},e.prototype.limit=function(t,e){return new this.constructor(this.editor,t,{from:t,to:e})},e.prototype.peek=function(){var t=this.pos,e=(t.line,t.ch),n=this.editor.getLine(this.pos.line);return e=this._lineLength(this.pos.line)&&(this.pos.line++,this.pos.ch=0),this.eof()&&(this.pos=Object.assign({},this._eof)),t}return NaN},e.prototype.backUp=function(t){var e=this,n=this.editor.constructor,r=this.pos,i=r.line,o=r.ch;for(o-=t||1;i>=0&&o<0;)i--,o+=e._lineLength(i);return this.pos=i<0||o<0?n.Pos(0,0):n.Pos(i,o),this.peek()},e.prototype.current=function(){return this.substring(this.start,this.pos)},e.prototype.substring=function(t,e){return this.editor.getRange(t,e)},e.prototype.error=function(t){var e=new Error(t+" at line "+this.pos.line+", column "+this.pos.ch);return e.originalMessage=t,e.pos=this.pos,e.string=this.string,e},e.prototype._lineLength=function(t){var e=t===this.editor.lastLine();return this.editor.getLine(t).length+(e?0:1)},e}(ss),ls="emmet-open-tag",cs="emmet-close-tag",fs={emmetExpandAbbreviation:$a,emmetInsertLineBreak:Ca};"undefined"!=typeof CodeMirror&&function(t){Object.assign(t.commands,fs),t.defineOption("markEmmetAbbreviation",!0,function(t,e){e?t.on("change",jn):(t.off("change",jn),En(t))}),t.defineOption("autoRenameTags",!0,function(t,e){e?t.on("change",Or):t.off("change",Or)}),t.defineOption("markTagPairs",!1,function(t,e){e?(t.on("cursorActivity",xr),t.on("change",vr)):(t.off("cursorActivity",xr),t.off("change",vr),vr(t),kr(t))}),t.defineOption("emmet",{}),t.defineExtension("getEmmetCompletions",function(t,e){var n=this;"boolean"==typeof t&&(e=t,t=null);var r,i;if(t=t||n.getCursor(),n.getOption("markEmmetAbbreviation")){var o=_n(n,t)||e&&Sn(n,t,!0);o&&(r=o.find(),i=Sa(n,o.model,r.from,t))}else{var a=kn(n,t);if(a){var s=$n(a.abbreviation,n);s&&(r={from:{line:t.line,ch:a.location},to:{line:t.line,ch:a.location+a.abbreviation.length}},i=Sa(n,s,r.from,t))}}if(i&&i.length)return{from:r.from,to:r.to,list:i}}),t.defineExtension("getEmmetAbbreviation",function(t){var e=this;t=t||e.getCursor();var n=_n(e,t);if(n)return{abbreviation:n.model.abbreviation,ast:n.model.ast,location:n.find().from,fromMarker:!0};var r=kn(e,t);if(r)try{return{abbreviation:r.abbreviation,ast:wn(r.abbreviation,e),location:{line:t.line,ch:r.location},fromMarker:!1}}catch(t){}return null}),t.defineExtension("findEmmetMarker",function(t){return _n(this,t||this.getCursor())}),t.defineExtension("getEmmetDocumentModel",function(){var t=this;return t.getOption("markTagPairs")?br(t):gr(t)})}(CodeMirror)}); -//# sourceMappingURL=emmet-codemirror-plugin.js.map diff --git a/src/lib/esprima.js b/src/lib/esprima.js deleted file mode 100644 index 734de64..0000000 --- a/src/lib/esprima.js +++ /dev/null @@ -1,6346 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { -/* istanbul ignore next */ - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); -/* istanbul ignore next */ - else if(typeof exports === 'object') - exports["esprima"] = factory(); - else - root["esprima"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/* istanbul ignore if */ -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - /* - Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - "use strict"; - var comment_handler_1 = __webpack_require__(1); - var parser_1 = __webpack_require__(3); - var jsx_parser_1 = __webpack_require__(11); - var tokenizer_1 = __webpack_require__(15); - function parse(code, options, delegate) { - var commentHandler = null; - var proxyDelegate = function (node, metadata) { - if (delegate) { - delegate(node, metadata); - } - if (commentHandler) { - commentHandler.visit(node, metadata); - } - }; - var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null; - var collectComment = false; - if (options) { - collectComment = (typeof options.comment === 'boolean' && options.comment); - var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment); - if (collectComment || attachComment) { - commentHandler = new comment_handler_1.CommentHandler(); - commentHandler.attach = attachComment; - options.comment = true; - parserDelegate = proxyDelegate; - } - } - var parser; - if (options && typeof options.jsx === 'boolean' && options.jsx) { - parser = new jsx_parser_1.JSXParser(code, options, parserDelegate); - } - else { - parser = new parser_1.Parser(code, options, parserDelegate); - } - var ast = (parser.parseProgram()); - if (collectComment) { - ast.comments = commentHandler.comments; - } - if (parser.config.tokens) { - ast.tokens = parser.tokens; - } - if (parser.config.tolerant) { - ast.errors = parser.errorHandler.errors; - } - return ast; - } - exports.parse = parse; - function tokenize(code, options, delegate) { - var tokenizer = new tokenizer_1.Tokenizer(code, options); - var tokens; - tokens = []; - try { - while (true) { - var token = tokenizer.getNextToken(); - if (!token) { - break; - } - if (delegate) { - token = delegate(token); - } - tokens.push(token); - } - } - catch (e) { - tokenizer.errorHandler.tolerate(e); - } - if (tokenizer.errorHandler.tolerant) { - tokens.errors = tokenizer.errors(); - } - return tokens; - } - exports.tokenize = tokenize; - var syntax_1 = __webpack_require__(2); - exports.Syntax = syntax_1.Syntax; - // Sync with *.json manifests. - exports.version = '3.1.1'; - - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var syntax_1 = __webpack_require__(2); - var CommentHandler = (function () { - function CommentHandler() { - this.attach = false; - this.comments = []; - this.stack = []; - this.leading = []; - this.trailing = []; - } - CommentHandler.prototype.insertInnerComments = function (node, metadata) { - // innnerComments for properties empty block - // `function a() {/** comments **\/}` - if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) { - var innerComments = []; - for (var i = this.leading.length - 1; i >= 0; --i) { - var entry = this.leading[i]; - if (metadata.end.offset >= entry.start) { - innerComments.unshift(entry.comment); - this.leading.splice(i, 1); - this.trailing.splice(i, 1); - } - } - if (innerComments.length) { - node.innerComments = innerComments; - } - } - }; - CommentHandler.prototype.findTrailingComments = function (node, metadata) { - var trailingComments = []; - if (this.trailing.length > 0) { - for (var i = this.trailing.length - 1; i >= 0; --i) { - var entry_1 = this.trailing[i]; - if (entry_1.start >= metadata.end.offset) { - trailingComments.unshift(entry_1.comment); - } - } - this.trailing.length = 0; - return trailingComments; - } - var entry = this.stack[this.stack.length - 1]; - if (entry && entry.node.trailingComments) { - var firstComment = entry.node.trailingComments[0]; - if (firstComment && firstComment.range[0] >= metadata.end.offset) { - trailingComments = entry.node.trailingComments; - delete entry.node.trailingComments; - } - } - return trailingComments; - }; - CommentHandler.prototype.findLeadingComments = function (node, metadata) { - var leadingComments = []; - var target; - while (this.stack.length > 0) { - var entry = this.stack[this.stack.length - 1]; - if (entry && entry.start >= metadata.start.offset) { - target = this.stack.pop().node; - } - else { - break; - } - } - if (target) { - var count = target.leadingComments ? target.leadingComments.length : 0; - for (var i = count - 1; i >= 0; --i) { - var comment = target.leadingComments[i]; - if (comment.range[1] <= metadata.start.offset) { - leadingComments.unshift(comment); - target.leadingComments.splice(i, 1); - } - } - if (target.leadingComments && target.leadingComments.length === 0) { - delete target.leadingComments; - } - return leadingComments; - } - for (var i = this.leading.length - 1; i >= 0; --i) { - var entry = this.leading[i]; - if (entry.start <= metadata.start.offset) { - leadingComments.unshift(entry.comment); - this.leading.splice(i, 1); - } - } - return leadingComments; - }; - CommentHandler.prototype.visitNode = function (node, metadata) { - if (node.type === syntax_1.Syntax.Program && node.body.length > 0) { - return; - } - this.insertInnerComments(node, metadata); - var trailingComments = this.findTrailingComments(node, metadata); - var leadingComments = this.findLeadingComments(node, metadata); - if (leadingComments.length > 0) { - node.leadingComments = leadingComments; - } - if (trailingComments.length > 0) { - node.trailingComments = trailingComments; - } - this.stack.push({ - node: node, - start: metadata.start.offset - }); - }; - CommentHandler.prototype.visitComment = function (node, metadata) { - var type = (node.type[0] === 'L') ? 'Line' : 'Block'; - var comment = { - type: type, - value: node.value - }; - if (node.range) { - comment.range = node.range; - } - if (node.loc) { - comment.loc = node.loc; - } - this.comments.push(comment); - if (this.attach) { - var entry = { - comment: { - type: type, - value: node.value, - range: [metadata.start.offset, metadata.end.offset] - }, - start: metadata.start.offset - }; - if (node.loc) { - entry.comment.loc = node.loc; - } - node.type = type; - this.leading.push(entry); - this.trailing.push(entry); - } - }; - CommentHandler.prototype.visit = function (node, metadata) { - if (node.type === 'LineComment') { - this.visitComment(node, metadata); - } - else if (node.type === 'BlockComment') { - this.visitComment(node, metadata); - } - else if (this.attach) { - this.visitNode(node, metadata); - } - }; - return CommentHandler; - }()); - exports.CommentHandler = CommentHandler; - - -/***/ }, -/* 2 */ -/***/ function(module, exports) { - - "use strict"; - exports.Syntax = { - AssignmentExpression: 'AssignmentExpression', - AssignmentPattern: 'AssignmentPattern', - ArrayExpression: 'ArrayExpression', - ArrayPattern: 'ArrayPattern', - ArrowFunctionExpression: 'ArrowFunctionExpression', - BlockStatement: 'BlockStatement', - BinaryExpression: 'BinaryExpression', - BreakStatement: 'BreakStatement', - CallExpression: 'CallExpression', - CatchClause: 'CatchClause', - ClassBody: 'ClassBody', - ClassDeclaration: 'ClassDeclaration', - ClassExpression: 'ClassExpression', - ConditionalExpression: 'ConditionalExpression', - ContinueStatement: 'ContinueStatement', - DoWhileStatement: 'DoWhileStatement', - DebuggerStatement: 'DebuggerStatement', - EmptyStatement: 'EmptyStatement', - ExportAllDeclaration: 'ExportAllDeclaration', - ExportDefaultDeclaration: 'ExportDefaultDeclaration', - ExportNamedDeclaration: 'ExportNamedDeclaration', - ExportSpecifier: 'ExportSpecifier', - ExpressionStatement: 'ExpressionStatement', - ForStatement: 'ForStatement', - ForOfStatement: 'ForOfStatement', - ForInStatement: 'ForInStatement', - FunctionDeclaration: 'FunctionDeclaration', - FunctionExpression: 'FunctionExpression', - Identifier: 'Identifier', - IfStatement: 'IfStatement', - ImportDeclaration: 'ImportDeclaration', - ImportDefaultSpecifier: 'ImportDefaultSpecifier', - ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', - ImportSpecifier: 'ImportSpecifier', - Literal: 'Literal', - LabeledStatement: 'LabeledStatement', - LogicalExpression: 'LogicalExpression', - MemberExpression: 'MemberExpression', - MetaProperty: 'MetaProperty', - MethodDefinition: 'MethodDefinition', - NewExpression: 'NewExpression', - ObjectExpression: 'ObjectExpression', - ObjectPattern: 'ObjectPattern', - Program: 'Program', - Property: 'Property', - RestElement: 'RestElement', - ReturnStatement: 'ReturnStatement', - SequenceExpression: 'SequenceExpression', - SpreadElement: 'SpreadElement', - Super: 'Super', - SwitchCase: 'SwitchCase', - SwitchStatement: 'SwitchStatement', - TaggedTemplateExpression: 'TaggedTemplateExpression', - TemplateElement: 'TemplateElement', - TemplateLiteral: 'TemplateLiteral', - ThisExpression: 'ThisExpression', - ThrowStatement: 'ThrowStatement', - TryStatement: 'TryStatement', - UnaryExpression: 'UnaryExpression', - UpdateExpression: 'UpdateExpression', - VariableDeclaration: 'VariableDeclaration', - VariableDeclarator: 'VariableDeclarator', - WhileStatement: 'WhileStatement', - WithStatement: 'WithStatement', - YieldExpression: 'YieldExpression' - }; - - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var assert_1 = __webpack_require__(4); - var messages_1 = __webpack_require__(5); - var error_handler_1 = __webpack_require__(6); - var token_1 = __webpack_require__(7); - var scanner_1 = __webpack_require__(8); - var syntax_1 = __webpack_require__(2); - var Node = __webpack_require__(10); - var ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder'; - var Parser = (function () { - function Parser(code, options, delegate) { - if (options === void 0) { options = {}; } - this.config = { - range: (typeof options.range === 'boolean') && options.range, - loc: (typeof options.loc === 'boolean') && options.loc, - source: null, - tokens: (typeof options.tokens === 'boolean') && options.tokens, - comment: (typeof options.comment === 'boolean') && options.comment, - tolerant: (typeof options.tolerant === 'boolean') && options.tolerant - }; - if (this.config.loc && options.source && options.source !== null) { - this.config.source = String(options.source); - } - this.delegate = delegate; - this.errorHandler = new error_handler_1.ErrorHandler(); - this.errorHandler.tolerant = this.config.tolerant; - this.scanner = new scanner_1.Scanner(code, this.errorHandler); - this.scanner.trackComment = this.config.comment; - this.operatorPrecedence = { - ')': 0, - ';': 0, - ',': 0, - '=': 0, - ']': 0, - '||': 1, - '&&': 2, - '|': 3, - '^': 4, - '&': 5, - '==': 6, - '!=': 6, - '===': 6, - '!==': 6, - '<': 7, - '>': 7, - '<=': 7, - '>=': 7, - '<<': 8, - '>>': 8, - '>>>': 8, - '+': 9, - '-': 9, - '*': 11, - '/': 11, - '%': 11 - }; - this.sourceType = (options && options.sourceType === 'module') ? 'module' : 'script'; - this.lookahead = null; - this.hasLineTerminator = false; - this.context = { - allowIn: true, - allowYield: true, - firstCoverInitializedNameError: null, - isAssignmentTarget: false, - isBindingElement: false, - inFunctionBody: false, - inIteration: false, - inSwitch: false, - labelSet: {}, - strict: (this.sourceType === 'module') - }; - this.tokens = []; - this.startMarker = { - index: 0, - lineNumber: this.scanner.lineNumber, - lineStart: 0 - }; - this.lastMarker = { - index: 0, - lineNumber: this.scanner.lineNumber, - lineStart: 0 - }; - this.nextToken(); - this.lastMarker = { - index: this.scanner.index, - lineNumber: this.scanner.lineNumber, - lineStart: this.scanner.lineStart - }; - } - Parser.prototype.throwError = function (messageFormat) { - var values = []; - for (var _i = 1; _i < arguments.length; _i++) { - values[_i - 1] = arguments[_i]; - } - var args = Array.prototype.slice.call(arguments, 1); - var msg = messageFormat.replace(/%(\d)/g, function (whole, idx) { - assert_1.assert(idx < args.length, 'Message reference must be in range'); - return args[idx]; - }); - var index = this.lastMarker.index; - var line = this.lastMarker.lineNumber; - var column = this.lastMarker.index - this.lastMarker.lineStart + 1; - throw this.errorHandler.createError(index, line, column, msg); - }; - Parser.prototype.tolerateError = function (messageFormat) { - var values = []; - for (var _i = 1; _i < arguments.length; _i++) { - values[_i - 1] = arguments[_i]; - } - var args = Array.prototype.slice.call(arguments, 1); - var msg = messageFormat.replace(/%(\d)/g, function (whole, idx) { - assert_1.assert(idx < args.length, 'Message reference must be in range'); - return args[idx]; - }); - var index = this.lastMarker.index; - var line = this.scanner.lineNumber; - var column = this.lastMarker.index - this.lastMarker.lineStart + 1; - this.errorHandler.tolerateError(index, line, column, msg); - }; - // Throw an exception because of the token. - Parser.prototype.unexpectedTokenError = function (token, message) { - var msg = message || messages_1.Messages.UnexpectedToken; - var value; - if (token) { - if (!message) { - msg = (token.type === token_1.Token.EOF) ? messages_1.Messages.UnexpectedEOS : - (token.type === token_1.Token.Identifier) ? messages_1.Messages.UnexpectedIdentifier : - (token.type === token_1.Token.NumericLiteral) ? messages_1.Messages.UnexpectedNumber : - (token.type === token_1.Token.StringLiteral) ? messages_1.Messages.UnexpectedString : - (token.type === token_1.Token.Template) ? messages_1.Messages.UnexpectedTemplate : - messages_1.Messages.UnexpectedToken; - if (token.type === token_1.Token.Keyword) { - if (this.scanner.isFutureReservedWord(token.value)) { - msg = messages_1.Messages.UnexpectedReserved; - } - else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) { - msg = messages_1.Messages.StrictReservedWord; - } - } - } - value = (token.type === token_1.Token.Template) ? token.value.raw : token.value; - } - else { - value = 'ILLEGAL'; - } - msg = msg.replace('%0', value); - if (token && typeof token.lineNumber === 'number') { - var index = token.start; - var line = token.lineNumber; - var column = token.start - this.lastMarker.lineStart + 1; - return this.errorHandler.createError(index, line, column, msg); - } - else { - var index = this.lastMarker.index; - var line = this.lastMarker.lineNumber; - var column = index - this.lastMarker.lineStart + 1; - return this.errorHandler.createError(index, line, column, msg); - } - }; - Parser.prototype.throwUnexpectedToken = function (token, message) { - throw this.unexpectedTokenError(token, message); - }; - Parser.prototype.tolerateUnexpectedToken = function (token, message) { - this.errorHandler.tolerate(this.unexpectedTokenError(token, message)); - }; - Parser.prototype.collectComments = function () { - if (!this.config.comment) { - this.scanner.scanComments(); - } - else { - var comments = this.scanner.scanComments(); - if (comments.length > 0 && this.delegate) { - for (var i = 0; i < comments.length; ++i) { - var e = comments[i]; - var node = void 0; - node = { - type: e.multiLine ? 'BlockComment' : 'LineComment', - value: this.scanner.source.slice(e.slice[0], e.slice[1]) - }; - if (this.config.range) { - node.range = e.range; - } - if (this.config.loc) { - node.loc = e.loc; - } - var metadata = { - start: { - line: e.loc.start.line, - column: e.loc.start.column, - offset: e.range[0] - }, - end: { - line: e.loc.end.line, - column: e.loc.end.column, - offset: e.range[1] - } - }; - this.delegate(node, metadata); - } - } - } - }; - // From internal representation to an external structure - Parser.prototype.getTokenRaw = function (token) { - return this.scanner.source.slice(token.start, token.end); - }; - Parser.prototype.convertToken = function (token) { - var t; - t = { - type: token_1.TokenName[token.type], - value: this.getTokenRaw(token) - }; - if (this.config.range) { - t.range = [token.start, token.end]; - } - if (this.config.loc) { - t.loc = { - start: { - line: this.startMarker.lineNumber, - column: this.startMarker.index - this.startMarker.lineStart - }, - end: { - line: this.scanner.lineNumber, - column: this.scanner.index - this.scanner.lineStart - } - }; - } - if (token.regex) { - t.regex = token.regex; - } - return t; - }; - Parser.prototype.nextToken = function () { - var token = this.lookahead; - this.lastMarker.index = this.scanner.index; - this.lastMarker.lineNumber = this.scanner.lineNumber; - this.lastMarker.lineStart = this.scanner.lineStart; - this.collectComments(); - this.startMarker.index = this.scanner.index; - this.startMarker.lineNumber = this.scanner.lineNumber; - this.startMarker.lineStart = this.scanner.lineStart; - var next; - next = this.scanner.lex(); - this.hasLineTerminator = (token && next) ? (token.lineNumber !== next.lineNumber) : false; - if (next && this.context.strict && next.type === token_1.Token.Identifier) { - if (this.scanner.isStrictModeReservedWord(next.value)) { - next.type = token_1.Token.Keyword; - } - } - this.lookahead = next; - if (this.config.tokens && next.type !== token_1.Token.EOF) { - this.tokens.push(this.convertToken(next)); - } - return token; - }; - Parser.prototype.nextRegexToken = function () { - this.collectComments(); - var token = this.scanner.scanRegExp(); - if (this.config.tokens) { - // Pop the previous token, '/' or '/=' - // This is added from the lookahead token. - this.tokens.pop(); - this.tokens.push(this.convertToken(token)); - } - // Prime the next lookahead. - this.lookahead = token; - this.nextToken(); - return token; - }; - Parser.prototype.createNode = function () { - return { - index: this.startMarker.index, - line: this.startMarker.lineNumber, - column: this.startMarker.index - this.startMarker.lineStart - }; - }; - Parser.prototype.startNode = function (token) { - return { - index: token.start, - line: token.lineNumber, - column: token.start - token.lineStart - }; - }; - Parser.prototype.finalize = function (meta, node) { - if (this.config.range) { - node.range = [meta.index, this.lastMarker.index]; - } - if (this.config.loc) { - node.loc = { - start: { - line: meta.line, - column: meta.column - }, - end: { - line: this.lastMarker.lineNumber, - column: this.lastMarker.index - this.lastMarker.lineStart - } - }; - if (this.config.source) { - node.loc.source = this.config.source; - } - } - if (this.delegate) { - var metadata = { - start: { - line: meta.line, - column: meta.column, - offset: meta.index - }, - end: { - line: this.lastMarker.lineNumber, - column: this.lastMarker.index - this.lastMarker.lineStart, - offset: this.lastMarker.index - } - }; - this.delegate(node, metadata); - } - return node; - }; - // Expect the next token to match the specified punctuator. - // If not, an exception will be thrown. - Parser.prototype.expect = function (value) { - var token = this.nextToken(); - if (token.type !== token_1.Token.Punctuator || token.value !== value) { - this.throwUnexpectedToken(token); - } - }; - // Quietly expect a comma when in tolerant mode, otherwise delegates to expect(). - Parser.prototype.expectCommaSeparator = function () { - if (this.config.tolerant) { - var token = this.lookahead; - if (token.type === token_1.Token.Punctuator && token.value === ',') { - this.nextToken(); - } - else if (token.type === token_1.Token.Punctuator && token.value === ';') { - this.nextToken(); - this.tolerateUnexpectedToken(token); - } - else { - this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken); - } - } - else { - this.expect(','); - } - }; - // Expect the next token to match the specified keyword. - // If not, an exception will be thrown. - Parser.prototype.expectKeyword = function (keyword) { - var token = this.nextToken(); - if (token.type !== token_1.Token.Keyword || token.value !== keyword) { - this.throwUnexpectedToken(token); - } - }; - // Return true if the next token matches the specified punctuator. - Parser.prototype.match = function (value) { - return this.lookahead.type === token_1.Token.Punctuator && this.lookahead.value === value; - }; - // Return true if the next token matches the specified keyword - Parser.prototype.matchKeyword = function (keyword) { - return this.lookahead.type === token_1.Token.Keyword && this.lookahead.value === keyword; - }; - // Return true if the next token matches the specified contextual keyword - // (where an identifier is sometimes a keyword depending on the context) - Parser.prototype.matchContextualKeyword = function (keyword) { - return this.lookahead.type === token_1.Token.Identifier && this.lookahead.value === keyword; - }; - // Return true if the next token is an assignment operator - Parser.prototype.matchAssign = function () { - if (this.lookahead.type !== token_1.Token.Punctuator) { - return false; - } - var op = this.lookahead.value; - return op === '=' || - op === '*=' || - op === '**=' || - op === '/=' || - op === '%=' || - op === '+=' || - op === '-=' || - op === '<<=' || - op === '>>=' || - op === '>>>=' || - op === '&=' || - op === '^=' || - op === '|='; - }; - // Cover grammar support. - // - // When an assignment expression position starts with an left parenthesis, the determination of the type - // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead) - // or the first comma. This situation also defers the determination of all the expressions nested in the pair. - // - // There are three productions that can be parsed in a parentheses pair that needs to be determined - // after the outermost pair is closed. They are: - // - // 1. AssignmentExpression - // 2. BindingElements - // 3. AssignmentTargets - // - // In order to avoid exponential backtracking, we use two flags to denote if the production can be - // binding element or assignment target. - // - // The three productions have the relationship: - // - // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression - // - // with a single exception that CoverInitializedName when used directly in an Expression, generates - // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the - // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair. - // - // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not - // effect the current flags. This means the production the parser parses is only used as an expression. Therefore - // the CoverInitializedName check is conducted. - // - // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates - // the flags outside of the parser. This means the production the parser parses is used as a part of a potential - // pattern. The CoverInitializedName check is deferred. - Parser.prototype.isolateCoverGrammar = function (parseFunction) { - var previousIsBindingElement = this.context.isBindingElement; - var previousIsAssignmentTarget = this.context.isAssignmentTarget; - var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError; - this.context.isBindingElement = true; - this.context.isAssignmentTarget = true; - this.context.firstCoverInitializedNameError = null; - var result = parseFunction.call(this); - if (this.context.firstCoverInitializedNameError !== null) { - this.throwUnexpectedToken(this.context.firstCoverInitializedNameError); - } - this.context.isBindingElement = previousIsBindingElement; - this.context.isAssignmentTarget = previousIsAssignmentTarget; - this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError; - return result; - }; - Parser.prototype.inheritCoverGrammar = function (parseFunction) { - var previousIsBindingElement = this.context.isBindingElement; - var previousIsAssignmentTarget = this.context.isAssignmentTarget; - var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError; - this.context.isBindingElement = true; - this.context.isAssignmentTarget = true; - this.context.firstCoverInitializedNameError = null; - var result = parseFunction.call(this); - this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement; - this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget; - this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError; - return result; - }; - Parser.prototype.consumeSemicolon = function () { - if (this.match(';')) { - this.nextToken(); - } - else if (!this.hasLineTerminator) { - if (this.lookahead.type !== token_1.Token.EOF && !this.match('}')) { - this.throwUnexpectedToken(this.lookahead); - } - this.lastMarker.index = this.startMarker.index; - this.lastMarker.lineNumber = this.startMarker.lineNumber; - this.lastMarker.lineStart = this.startMarker.lineStart; - } - }; - // ECMA-262 12.2 Primary Expressions - Parser.prototype.parsePrimaryExpression = function () { - var node = this.createNode(); - var expr; - var value, token, raw; - switch (this.lookahead.type) { - case token_1.Token.Identifier: - if (this.sourceType === 'module' && this.lookahead.value === 'await') { - this.tolerateUnexpectedToken(this.lookahead); - } - expr = this.finalize(node, new Node.Identifier(this.nextToken().value)); - break; - case token_1.Token.NumericLiteral: - case token_1.Token.StringLiteral: - if (this.context.strict && this.lookahead.octal) { - this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral); - } - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - token = this.nextToken(); - raw = this.getTokenRaw(token); - expr = this.finalize(node, new Node.Literal(token.value, raw)); - break; - case token_1.Token.BooleanLiteral: - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - token = this.nextToken(); - token.value = (token.value === 'true'); - raw = this.getTokenRaw(token); - expr = this.finalize(node, new Node.Literal(token.value, raw)); - break; - case token_1.Token.NullLiteral: - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - token = this.nextToken(); - token.value = null; - raw = this.getTokenRaw(token); - expr = this.finalize(node, new Node.Literal(token.value, raw)); - break; - case token_1.Token.Template: - expr = this.parseTemplateLiteral(); - break; - case token_1.Token.Punctuator: - value = this.lookahead.value; - switch (value) { - case '(': - this.context.isBindingElement = false; - expr = this.inheritCoverGrammar(this.parseGroupExpression); - break; - case '[': - expr = this.inheritCoverGrammar(this.parseArrayInitializer); - break; - case '{': - expr = this.inheritCoverGrammar(this.parseObjectInitializer); - break; - case '/': - case '/=': - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - this.scanner.index = this.startMarker.index; - token = this.nextRegexToken(); - raw = this.getTokenRaw(token); - expr = this.finalize(node, new Node.RegexLiteral(token.value, raw, token.regex)); - break; - default: - this.throwUnexpectedToken(this.nextToken()); - } - break; - case token_1.Token.Keyword: - if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) { - expr = this.parseIdentifierName(); - } - else if (!this.context.strict && this.matchKeyword('let')) { - expr = this.finalize(node, new Node.Identifier(this.nextToken().value)); - } - else { - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - if (this.matchKeyword('function')) { - expr = this.parseFunctionExpression(); - } - else if (this.matchKeyword('this')) { - this.nextToken(); - expr = this.finalize(node, new Node.ThisExpression()); - } - else if (this.matchKeyword('class')) { - expr = this.parseClassExpression(); - } - else { - this.throwUnexpectedToken(this.nextToken()); - } - } - break; - default: - this.throwUnexpectedToken(this.nextToken()); - } - return expr; - }; - // ECMA-262 12.2.5 Array Initializer - Parser.prototype.parseSpreadElement = function () { - var node = this.createNode(); - this.expect('...'); - var arg = this.inheritCoverGrammar(this.parseAssignmentExpression); - return this.finalize(node, new Node.SpreadElement(arg)); - }; - Parser.prototype.parseArrayInitializer = function () { - var node = this.createNode(); - var elements = []; - this.expect('['); - while (!this.match(']')) { - if (this.match(',')) { - this.nextToken(); - elements.push(null); - } - else if (this.match('...')) { - var element = this.parseSpreadElement(); - if (!this.match(']')) { - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - this.expect(','); - } - elements.push(element); - } - else { - elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression)); - if (!this.match(']')) { - this.expect(','); - } - } - } - this.expect(']'); - return this.finalize(node, new Node.ArrayExpression(elements)); - }; - // ECMA-262 12.2.6 Object Initializer - Parser.prototype.parsePropertyMethod = function (params) { - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - var previousStrict = this.context.strict; - var body = this.isolateCoverGrammar(this.parseFunctionSourceElements); - if (this.context.strict && params.firstRestricted) { - this.tolerateUnexpectedToken(params.firstRestricted, params.message); - } - if (this.context.strict && params.stricted) { - this.tolerateUnexpectedToken(params.stricted, params.message); - } - this.context.strict = previousStrict; - return body; - }; - Parser.prototype.parsePropertyMethodFunction = function () { - var isGenerator = false; - var node = this.createNode(); - var previousAllowYield = this.context.allowYield; - this.context.allowYield = false; - var params = this.parseFormalParameters(); - var method = this.parsePropertyMethod(params); - this.context.allowYield = previousAllowYield; - return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator)); - }; - Parser.prototype.parseObjectPropertyKey = function () { - var node = this.createNode(); - var token = this.nextToken(); - var key = null; - switch (token.type) { - case token_1.Token.StringLiteral: - case token_1.Token.NumericLiteral: - if (this.context.strict && token.octal) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral); - } - var raw = this.getTokenRaw(token); - key = this.finalize(node, new Node.Literal(token.value, raw)); - break; - case token_1.Token.Identifier: - case token_1.Token.BooleanLiteral: - case token_1.Token.NullLiteral: - case token_1.Token.Keyword: - key = this.finalize(node, new Node.Identifier(token.value)); - break; - case token_1.Token.Punctuator: - if (token.value === '[') { - key = this.isolateCoverGrammar(this.parseAssignmentExpression); - this.expect(']'); - } - else { - this.throwUnexpectedToken(token); - } - break; - default: - this.throwUnexpectedToken(token); - } - return key; - }; - Parser.prototype.isPropertyKey = function (key, value) { - return (key.type === syntax_1.Syntax.Identifier && key.name === value) || - (key.type === syntax_1.Syntax.Literal && key.value === value); - }; - Parser.prototype.parseObjectProperty = function (hasProto) { - var node = this.createNode(); - var token = this.lookahead; - var kind; - var key; - var value; - var computed = false; - var method = false; - var shorthand = false; - if (token.type === token_1.Token.Identifier) { - this.nextToken(); - key = this.finalize(node, new Node.Identifier(token.value)); - } - else if (this.match('*')) { - this.nextToken(); - } - else { - computed = this.match('['); - key = this.parseObjectPropertyKey(); - } - var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead); - if (token.type === token_1.Token.Identifier && token.value === 'get' && lookaheadPropertyKey) { - kind = 'get'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - this.context.allowYield = false; - value = this.parseGetterMethod(); - } - else if (token.type === token_1.Token.Identifier && token.value === 'set' && lookaheadPropertyKey) { - kind = 'set'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - value = this.parseSetterMethod(); - } - else if (token.type === token_1.Token.Punctuator && token.value === '*' && lookaheadPropertyKey) { - kind = 'init'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - value = this.parseGeneratorMethod(); - method = true; - } - else { - if (!key) { - this.throwUnexpectedToken(this.lookahead); - } - kind = 'init'; - if (this.match(':')) { - if (!computed && this.isPropertyKey(key, '__proto__')) { - if (hasProto.value) { - this.tolerateError(messages_1.Messages.DuplicateProtoProperty); - } - hasProto.value = true; - } - this.nextToken(); - value = this.inheritCoverGrammar(this.parseAssignmentExpression); - } - else if (this.match('(')) { - value = this.parsePropertyMethodFunction(); - method = true; - } - else if (token.type === token_1.Token.Identifier) { - var id = this.finalize(node, new Node.Identifier(token.value)); - if (this.match('=')) { - this.context.firstCoverInitializedNameError = this.lookahead; - this.nextToken(); - shorthand = true; - var init = this.isolateCoverGrammar(this.parseAssignmentExpression); - value = this.finalize(node, new Node.AssignmentPattern(id, init)); - } - else { - shorthand = true; - value = id; - } - } - else { - this.throwUnexpectedToken(this.nextToken()); - } - } - return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand)); - }; - Parser.prototype.parseObjectInitializer = function () { - var node = this.createNode(); - this.expect('{'); - var properties = []; - var hasProto = { value: false }; - while (!this.match('}')) { - properties.push(this.parseObjectProperty(hasProto)); - if (!this.match('}')) { - this.expectCommaSeparator(); - } - } - this.expect('}'); - return this.finalize(node, new Node.ObjectExpression(properties)); - }; - // ECMA-262 12.2.9 Template Literals - Parser.prototype.parseTemplateHead = function () { - assert_1.assert(this.lookahead.head, 'Template literal must start with a template head'); - var node = this.createNode(); - var token = this.nextToken(); - var value = { - raw: token.value.raw, - cooked: token.value.cooked - }; - return this.finalize(node, new Node.TemplateElement(value, token.tail)); - }; - Parser.prototype.parseTemplateElement = function () { - if (this.lookahead.type !== token_1.Token.Template) { - this.throwUnexpectedToken(); - } - var node = this.createNode(); - var token = this.nextToken(); - var value = { - raw: token.value.raw, - cooked: token.value.cooked - }; - return this.finalize(node, new Node.TemplateElement(value, token.tail)); - }; - Parser.prototype.parseTemplateLiteral = function () { - var node = this.createNode(); - var expressions = []; - var quasis = []; - var quasi = this.parseTemplateHead(); - quasis.push(quasi); - while (!quasi.tail) { - expressions.push(this.parseExpression()); - quasi = this.parseTemplateElement(); - quasis.push(quasi); - } - return this.finalize(node, new Node.TemplateLiteral(quasis, expressions)); - }; - // ECMA-262 12.2.10 The Grouping Operator - Parser.prototype.reinterpretExpressionAsPattern = function (expr) { - switch (expr.type) { - case syntax_1.Syntax.Identifier: - case syntax_1.Syntax.MemberExpression: - case syntax_1.Syntax.RestElement: - case syntax_1.Syntax.AssignmentPattern: - break; - case syntax_1.Syntax.SpreadElement: - expr.type = syntax_1.Syntax.RestElement; - this.reinterpretExpressionAsPattern(expr.argument); - break; - case syntax_1.Syntax.ArrayExpression: - expr.type = syntax_1.Syntax.ArrayPattern; - for (var i = 0; i < expr.elements.length; i++) { - if (expr.elements[i] !== null) { - this.reinterpretExpressionAsPattern(expr.elements[i]); - } - } - break; - case syntax_1.Syntax.ObjectExpression: - expr.type = syntax_1.Syntax.ObjectPattern; - for (var i = 0; i < expr.properties.length; i++) { - this.reinterpretExpressionAsPattern(expr.properties[i].value); - } - break; - case syntax_1.Syntax.AssignmentExpression: - expr.type = syntax_1.Syntax.AssignmentPattern; - delete expr.operator; - this.reinterpretExpressionAsPattern(expr.left); - break; - default: - // Allow other node type for tolerant parsing. - break; - } - }; - Parser.prototype.parseGroupExpression = function () { - var expr; - this.expect('('); - if (this.match(')')) { - this.nextToken(); - if (!this.match('=>')) { - this.expect('=>'); - } - expr = { - type: ArrowParameterPlaceHolder, - params: [] - }; - } - else { - var startToken = this.lookahead; - var params = []; - if (this.match('...')) { - expr = this.parseRestElement(params); - this.expect(')'); - if (!this.match('=>')) { - this.expect('=>'); - } - expr = { - type: ArrowParameterPlaceHolder, - params: [expr] - }; - } - else { - var arrow = false; - this.context.isBindingElement = true; - expr = this.inheritCoverGrammar(this.parseAssignmentExpression); - if (this.match(',')) { - var expressions = []; - this.context.isAssignmentTarget = false; - expressions.push(expr); - while (this.startMarker.index < this.scanner.length) { - if (!this.match(',')) { - break; - } - this.nextToken(); - if (this.match('...')) { - if (!this.context.isBindingElement) { - this.throwUnexpectedToken(this.lookahead); - } - expressions.push(this.parseRestElement(params)); - this.expect(')'); - if (!this.match('=>')) { - this.expect('=>'); - } - this.context.isBindingElement = false; - for (var i = 0; i < expressions.length; i++) { - this.reinterpretExpressionAsPattern(expressions[i]); - } - arrow = true; - expr = { - type: ArrowParameterPlaceHolder, - params: expressions - }; - } - else { - expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression)); - } - if (arrow) { - break; - } - } - if (!arrow) { - expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions)); - } - } - if (!arrow) { - this.expect(')'); - if (this.match('=>')) { - if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') { - arrow = true; - expr = { - type: ArrowParameterPlaceHolder, - params: [expr] - }; - } - if (!arrow) { - if (!this.context.isBindingElement) { - this.throwUnexpectedToken(this.lookahead); - } - if (expr.type === syntax_1.Syntax.SequenceExpression) { - for (var i = 0; i < expr.expressions.length; i++) { - this.reinterpretExpressionAsPattern(expr.expressions[i]); - } - } - else { - this.reinterpretExpressionAsPattern(expr); - } - var params_1 = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]); - expr = { - type: ArrowParameterPlaceHolder, - params: params_1 - }; - } - } - this.context.isBindingElement = false; - } - } - } - return expr; - }; - // ECMA-262 12.3 Left-Hand-Side Expressions - Parser.prototype.parseArguments = function () { - this.expect('('); - var args = []; - if (!this.match(')')) { - while (true) { - var expr = this.match('...') ? this.parseSpreadElement() : - this.isolateCoverGrammar(this.parseAssignmentExpression); - args.push(expr); - if (this.match(')')) { - break; - } - this.expectCommaSeparator(); - } - } - this.expect(')'); - return args; - }; - Parser.prototype.isIdentifierName = function (token) { - return token.type === token_1.Token.Identifier || - token.type === token_1.Token.Keyword || - token.type === token_1.Token.BooleanLiteral || - token.type === token_1.Token.NullLiteral; - }; - Parser.prototype.parseIdentifierName = function () { - var node = this.createNode(); - var token = this.nextToken(); - if (!this.isIdentifierName(token)) { - this.throwUnexpectedToken(token); - } - return this.finalize(node, new Node.Identifier(token.value)); - }; - Parser.prototype.parseNewExpression = function () { - var node = this.createNode(); - var id = this.parseIdentifierName(); - assert_1.assert(id.name === 'new', 'New expression must start with `new`'); - var expr; - if (this.match('.')) { - this.nextToken(); - if (this.lookahead.type === token_1.Token.Identifier && this.context.inFunctionBody && this.lookahead.value === 'target') { - var property = this.parseIdentifierName(); - expr = new Node.MetaProperty(id, property); - } - else { - this.throwUnexpectedToken(this.lookahead); - } - } - else { - var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression); - var args = this.match('(') ? this.parseArguments() : []; - expr = new Node.NewExpression(callee, args); - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - } - return this.finalize(node, expr); - }; - Parser.prototype.parseLeftHandSideExpressionAllowCall = function () { - var startToken = this.lookahead; - var previousAllowIn = this.context.allowIn; - this.context.allowIn = true; - var expr; - if (this.matchKeyword('super') && this.context.inFunctionBody) { - expr = this.createNode(); - this.nextToken(); - expr = this.finalize(expr, new Node.Super()); - if (!this.match('(') && !this.match('.') && !this.match('[')) { - this.throwUnexpectedToken(this.lookahead); - } - } - else { - expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression); - } - while (true) { - if (this.match('.')) { - this.context.isBindingElement = false; - this.context.isAssignmentTarget = true; - this.expect('.'); - var property = this.parseIdentifierName(); - expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property)); - } - else if (this.match('(')) { - this.context.isBindingElement = false; - this.context.isAssignmentTarget = false; - var args = this.parseArguments(); - expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args)); - } - else if (this.match('[')) { - this.context.isBindingElement = false; - this.context.isAssignmentTarget = true; - this.expect('['); - var property = this.isolateCoverGrammar(this.parseExpression); - this.expect(']'); - expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property)); - } - else if (this.lookahead.type === token_1.Token.Template && this.lookahead.head) { - var quasi = this.parseTemplateLiteral(); - expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi)); - } - else { - break; - } - } - this.context.allowIn = previousAllowIn; - return expr; - }; - Parser.prototype.parseSuper = function () { - var node = this.createNode(); - this.expectKeyword('super'); - if (!this.match('[') && !this.match('.')) { - this.throwUnexpectedToken(this.lookahead); - } - return this.finalize(node, new Node.Super()); - }; - Parser.prototype.parseLeftHandSideExpression = function () { - assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.'); - var node = this.startNode(this.lookahead); - var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() : - this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression); - while (true) { - if (this.match('[')) { - this.context.isBindingElement = false; - this.context.isAssignmentTarget = true; - this.expect('['); - var property = this.isolateCoverGrammar(this.parseExpression); - this.expect(']'); - expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property)); - } - else if (this.match('.')) { - this.context.isBindingElement = false; - this.context.isAssignmentTarget = true; - this.expect('.'); - var property = this.parseIdentifierName(); - expr = this.finalize(node, new Node.StaticMemberExpression(expr, property)); - } - else if (this.lookahead.type === token_1.Token.Template && this.lookahead.head) { - var quasi = this.parseTemplateLiteral(); - expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi)); - } - else { - break; - } - } - return expr; - }; - // ECMA-262 12.4 Update Expressions - Parser.prototype.parseUpdateExpression = function () { - var expr; - var startToken = this.lookahead; - if (this.match('++') || this.match('--')) { - var node = this.startNode(startToken); - var token = this.nextToken(); - expr = this.inheritCoverGrammar(this.parseUnaryExpression); - if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) { - this.tolerateError(messages_1.Messages.StrictLHSPrefix); - } - if (!this.context.isAssignmentTarget) { - this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); - } - var prefix = true; - expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix)); - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - } - else { - expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall); - if (!this.hasLineTerminator && this.lookahead.type === token_1.Token.Punctuator) { - if (this.match('++') || this.match('--')) { - if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) { - this.tolerateError(messages_1.Messages.StrictLHSPostfix); - } - if (!this.context.isAssignmentTarget) { - this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); - } - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - var operator = this.nextToken().value; - var prefix = false; - expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix)); - } - } - } - return expr; - }; - // ECMA-262 12.5 Unary Operators - Parser.prototype.parseUnaryExpression = function () { - var expr; - if (this.match('+') || this.match('-') || this.match('~') || this.match('!') || - this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) { - var node = this.startNode(this.lookahead); - var token = this.nextToken(); - expr = this.inheritCoverGrammar(this.parseUnaryExpression); - expr = this.finalize(node, new Node.UnaryExpression(token.value, expr)); - if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) { - this.tolerateError(messages_1.Messages.StrictDelete); - } - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - } - else { - expr = this.parseUpdateExpression(); - } - return expr; - }; - Parser.prototype.parseExponentiationExpression = function () { - var startToken = this.lookahead; - var expr = this.inheritCoverGrammar(this.parseUnaryExpression); - if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) { - this.nextToken(); - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - var left = expr; - var right = this.isolateCoverGrammar(this.parseExponentiationExpression); - expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right)); - } - return expr; - }; - // ECMA-262 12.6 Exponentiation Operators - // ECMA-262 12.7 Multiplicative Operators - // ECMA-262 12.8 Additive Operators - // ECMA-262 12.9 Bitwise Shift Operators - // ECMA-262 12.10 Relational Operators - // ECMA-262 12.11 Equality Operators - // ECMA-262 12.12 Binary Bitwise Operators - // ECMA-262 12.13 Binary Logical Operators - Parser.prototype.binaryPrecedence = function (token) { - var op = token.value; - var precedence; - if (token.type === token_1.Token.Punctuator) { - precedence = this.operatorPrecedence[op] || 0; - } - else if (token.type === token_1.Token.Keyword) { - precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0; - } - else { - precedence = 0; - } - return precedence; - }; - Parser.prototype.parseBinaryExpression = function () { - var startToken = this.lookahead; - var expr = this.inheritCoverGrammar(this.parseExponentiationExpression); - var token = this.lookahead; - var prec = this.binaryPrecedence(token); - if (prec > 0) { - this.nextToken(); - token.prec = prec; - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - var markers = [startToken, this.lookahead]; - var left = expr; - var right = this.isolateCoverGrammar(this.parseExponentiationExpression); - var stack = [left, token, right]; - while (true) { - prec = this.binaryPrecedence(this.lookahead); - if (prec <= 0) { - break; - } - // Reduce: make a binary expression from the three topmost entries. - while ((stack.length > 2) && (prec <= stack[stack.length - 2].prec)) { - right = stack.pop(); - var operator = stack.pop().value; - left = stack.pop(); - markers.pop(); - var node = this.startNode(markers[markers.length - 1]); - stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right))); - } - // Shift. - token = this.nextToken(); - token.prec = prec; - stack.push(token); - markers.push(this.lookahead); - stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression)); - } - // Final reduce to clean-up the stack. - var i = stack.length - 1; - expr = stack[i]; - markers.pop(); - while (i > 1) { - var node = this.startNode(markers.pop()); - expr = this.finalize(node, new Node.BinaryExpression(stack[i - 1].value, stack[i - 2], expr)); - i -= 2; - } - } - return expr; - }; - // ECMA-262 12.14 Conditional Operator - Parser.prototype.parseConditionalExpression = function () { - var startToken = this.lookahead; - var expr = this.inheritCoverGrammar(this.parseBinaryExpression); - if (this.match('?')) { - this.nextToken(); - var previousAllowIn = this.context.allowIn; - this.context.allowIn = true; - var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression); - this.context.allowIn = previousAllowIn; - this.expect(':'); - var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression); - expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate)); - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - } - return expr; - }; - // ECMA-262 12.15 Assignment Operators - Parser.prototype.checkPatternParam = function (options, param) { - switch (param.type) { - case syntax_1.Syntax.Identifier: - this.validateParam(options, param, param.name); - break; - case syntax_1.Syntax.RestElement: - this.checkPatternParam(options, param.argument); - break; - case syntax_1.Syntax.AssignmentPattern: - this.checkPatternParam(options, param.left); - break; - case syntax_1.Syntax.ArrayPattern: - for (var i = 0; i < param.elements.length; i++) { - if (param.elements[i] !== null) { - this.checkPatternParam(options, param.elements[i]); - } - } - break; - case syntax_1.Syntax.YieldExpression: - break; - default: - assert_1.assert(param.type === syntax_1.Syntax.ObjectPattern, 'Invalid type'); - for (var i = 0; i < param.properties.length; i++) { - this.checkPatternParam(options, param.properties[i].value); - } - break; - } - }; - Parser.prototype.reinterpretAsCoverFormalsList = function (expr) { - var params = [expr]; - var options; - switch (expr.type) { - case syntax_1.Syntax.Identifier: - break; - case ArrowParameterPlaceHolder: - params = expr.params; - break; - default: - return null; - } - options = { - paramSet: {} - }; - for (var i = 0; i < params.length; ++i) { - var param = params[i]; - if (param.type === syntax_1.Syntax.AssignmentPattern) { - if (param.right.type === syntax_1.Syntax.YieldExpression) { - if (param.right.argument) { - this.throwUnexpectedToken(this.lookahead); - } - param.right.type = syntax_1.Syntax.Identifier; - param.right.name = 'yield'; - delete param.right.argument; - delete param.right.delegate; - } - } - this.checkPatternParam(options, param); - params[i] = param; - } - if (this.context.strict || !this.context.allowYield) { - for (var i = 0; i < params.length; ++i) { - var param = params[i]; - if (param.type === syntax_1.Syntax.YieldExpression) { - this.throwUnexpectedToken(this.lookahead); - } - } - } - if (options.message === messages_1.Messages.StrictParamDupe) { - var token = this.context.strict ? options.stricted : options.firstRestricted; - this.throwUnexpectedToken(token, options.message); - } - return { - params: params, - stricted: options.stricted, - firstRestricted: options.firstRestricted, - message: options.message - }; - }; - Parser.prototype.parseAssignmentExpression = function () { - var expr; - if (!this.context.allowYield && this.matchKeyword('yield')) { - expr = this.parseYieldExpression(); - } - else { - var startToken = this.lookahead; - var token = startToken; - expr = this.parseConditionalExpression(); - if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) { - // ECMA-262 14.2 Arrow Function Definitions - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - var list = this.reinterpretAsCoverFormalsList(expr); - if (list) { - if (this.hasLineTerminator) { - this.tolerateUnexpectedToken(this.lookahead); - } - this.context.firstCoverInitializedNameError = null; - var previousStrict = this.context.strict; - var previousAllowYield = this.context.allowYield; - this.context.allowYield = true; - var node = this.startNode(startToken); - this.expect('=>'); - var body = this.match('{') ? this.parseFunctionSourceElements() : - this.isolateCoverGrammar(this.parseAssignmentExpression); - var expression = body.type !== syntax_1.Syntax.BlockStatement; - if (this.context.strict && list.firstRestricted) { - this.throwUnexpectedToken(list.firstRestricted, list.message); - } - if (this.context.strict && list.stricted) { - this.tolerateUnexpectedToken(list.stricted, list.message); - } - expr = this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression)); - this.context.strict = previousStrict; - this.context.allowYield = previousAllowYield; - } - } - else { - if (this.matchAssign()) { - if (!this.context.isAssignmentTarget) { - this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); - } - if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) { - var id = (expr); - if (this.scanner.isRestrictedWord(id.name)) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment); - } - if (this.scanner.isStrictModeReservedWord(id.name)) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); - } - } - if (!this.match('=')) { - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - } - else { - this.reinterpretExpressionAsPattern(expr); - } - token = this.nextToken(); - var right = this.isolateCoverGrammar(this.parseAssignmentExpression); - expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(token.value, expr, right)); - this.context.firstCoverInitializedNameError = null; - } - } - } - return expr; - }; - // ECMA-262 12.16 Comma Operator - Parser.prototype.parseExpression = function () { - var startToken = this.lookahead; - var expr = this.isolateCoverGrammar(this.parseAssignmentExpression); - if (this.match(',')) { - var expressions = []; - expressions.push(expr); - while (this.startMarker.index < this.scanner.length) { - if (!this.match(',')) { - break; - } - this.nextToken(); - expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression)); - } - expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions)); - } - return expr; - }; - // ECMA-262 13.2 Block - Parser.prototype.parseStatementListItem = function () { - var statement = null; - this.context.isAssignmentTarget = true; - this.context.isBindingElement = true; - if (this.lookahead.type === token_1.Token.Keyword) { - switch (this.lookahead.value) { - case 'export': - if (this.sourceType !== 'module') { - this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration); - } - statement = this.parseExportDeclaration(); - break; - case 'import': - if (this.sourceType !== 'module') { - this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration); - } - statement = this.parseImportDeclaration(); - break; - case 'const': - statement = this.parseLexicalDeclaration({ inFor: false }); - break; - case 'function': - statement = this.parseFunctionDeclaration(); - break; - case 'class': - statement = this.parseClassDeclaration(); - break; - case 'let': - statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement(); - break; - default: - statement = this.parseStatement(); - break; - } - } - else { - statement = this.parseStatement(); - } - return statement; - }; - Parser.prototype.parseBlock = function () { - var node = this.createNode(); - this.expect('{'); - var block = []; - while (true) { - if (this.match('}')) { - break; - } - block.push(this.parseStatementListItem()); - } - this.expect('}'); - return this.finalize(node, new Node.BlockStatement(block)); - }; - // ECMA-262 13.3.1 Let and Const Declarations - Parser.prototype.parseLexicalBinding = function (kind, options) { - var node = this.createNode(); - var params = []; - var id = this.parsePattern(params, kind); - // ECMA-262 12.2.1 - if (this.context.strict && id.type === syntax_1.Syntax.Identifier) { - if (this.scanner.isRestrictedWord((id).name)) { - this.tolerateError(messages_1.Messages.StrictVarName); - } - } - var init = null; - if (kind === 'const') { - if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) { - this.expect('='); - init = this.isolateCoverGrammar(this.parseAssignmentExpression); - } - } - else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) { - this.expect('='); - init = this.isolateCoverGrammar(this.parseAssignmentExpression); - } - return this.finalize(node, new Node.VariableDeclarator(id, init)); - }; - Parser.prototype.parseBindingList = function (kind, options) { - var list = [this.parseLexicalBinding(kind, options)]; - while (this.match(',')) { - this.nextToken(); - list.push(this.parseLexicalBinding(kind, options)); - } - return list; - }; - Parser.prototype.isLexicalDeclaration = function () { - var previousIndex = this.scanner.index; - var previousLineNumber = this.scanner.lineNumber; - var previousLineStart = this.scanner.lineStart; - this.collectComments(); - var next = this.scanner.lex(); - this.scanner.index = previousIndex; - this.scanner.lineNumber = previousLineNumber; - this.scanner.lineStart = previousLineStart; - return (next.type === token_1.Token.Identifier) || - (next.type === token_1.Token.Punctuator && next.value === '[') || - (next.type === token_1.Token.Punctuator && next.value === '{') || - (next.type === token_1.Token.Keyword && next.value === 'let') || - (next.type === token_1.Token.Keyword && next.value === 'yield'); - }; - Parser.prototype.parseLexicalDeclaration = function (options) { - var node = this.createNode(); - var kind = this.nextToken().value; - assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const'); - var declarations = this.parseBindingList(kind, options); - this.consumeSemicolon(); - return this.finalize(node, new Node.VariableDeclaration(declarations, kind)); - }; - // ECMA-262 13.3.3 Destructuring Binding Patterns - Parser.prototype.parseBindingRestElement = function (params, kind) { - var node = this.createNode(); - this.expect('...'); - params.push(this.lookahead); - var arg = this.parseVariableIdentifier(kind); - return this.finalize(node, new Node.RestElement(arg)); - }; - Parser.prototype.parseArrayPattern = function (params, kind) { - var node = this.createNode(); - this.expect('['); - var elements = []; - while (!this.match(']')) { - if (this.match(',')) { - this.nextToken(); - elements.push(null); - } - else { - if (this.match('...')) { - elements.push(this.parseBindingRestElement(params, kind)); - break; - } - else { - elements.push(this.parsePatternWithDefault(params, kind)); - } - if (!this.match(']')) { - this.expect(','); - } - } - } - this.expect(']'); - return this.finalize(node, new Node.ArrayPattern(elements)); - }; - Parser.prototype.parsePropertyPattern = function (params, kind) { - var node = this.createNode(); - var computed = false; - var shorthand = false; - var method = false; - var key; - var value; - if (this.lookahead.type === token_1.Token.Identifier) { - var keyToken = this.lookahead; - key = this.parseVariableIdentifier(); - var init = this.finalize(node, new Node.Identifier(keyToken.value)); - if (this.match('=')) { - params.push(keyToken); - shorthand = true; - this.nextToken(); - var expr = this.parseAssignmentExpression(); - value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr)); - } - else if (!this.match(':')) { - params.push(keyToken); - shorthand = true; - value = init; - } - else { - this.expect(':'); - value = this.parsePatternWithDefault(params, kind); - } - } - else { - computed = this.match('['); - key = this.parseObjectPropertyKey(); - this.expect(':'); - value = this.parsePatternWithDefault(params, kind); - } - return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand)); - }; - Parser.prototype.parseObjectPattern = function (params, kind) { - var node = this.createNode(); - var properties = []; - this.expect('{'); - while (!this.match('}')) { - properties.push(this.parsePropertyPattern(params, kind)); - if (!this.match('}')) { - this.expect(','); - } - } - this.expect('}'); - return this.finalize(node, new Node.ObjectPattern(properties)); - }; - Parser.prototype.parsePattern = function (params, kind) { - var pattern; - if (this.match('[')) { - pattern = this.parseArrayPattern(params, kind); - } - else if (this.match('{')) { - pattern = this.parseObjectPattern(params, kind); - } - else { - if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) { - this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.UnexpectedToken); - } - params.push(this.lookahead); - pattern = this.parseVariableIdentifier(kind); - } - return pattern; - }; - Parser.prototype.parsePatternWithDefault = function (params, kind) { - var startToken = this.lookahead; - var pattern = this.parsePattern(params, kind); - if (this.match('=')) { - this.nextToken(); - var previousAllowYield = this.context.allowYield; - this.context.allowYield = true; - var right = this.isolateCoverGrammar(this.parseAssignmentExpression); - this.context.allowYield = previousAllowYield; - pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right)); - } - return pattern; - }; - // ECMA-262 13.3.2 Variable Statement - Parser.prototype.parseVariableIdentifier = function (kind) { - var node = this.createNode(); - var token = this.nextToken(); - if (token.type === token_1.Token.Keyword && token.value === 'yield') { - if (this.context.strict) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); - } - if (!this.context.allowYield) { - this.throwUnexpectedToken(token); - } - } - else if (token.type !== token_1.Token.Identifier) { - if (this.context.strict && token.type === token_1.Token.Keyword && this.scanner.isStrictModeReservedWord(token.value)) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); - } - else { - if (this.context.strict || token.value !== 'let' || kind !== 'var') { - this.throwUnexpectedToken(token); - } - } - } - else if (this.sourceType === 'module' && token.type === token_1.Token.Identifier && token.value === 'await') { - this.tolerateUnexpectedToken(token); - } - return this.finalize(node, new Node.Identifier(token.value)); - }; - Parser.prototype.parseVariableDeclaration = function (options) { - var node = this.createNode(); - var params = []; - var id = this.parsePattern(params, 'var'); - // ECMA-262 12.2.1 - if (this.context.strict && id.type === syntax_1.Syntax.Identifier) { - if (this.scanner.isRestrictedWord((id).name)) { - this.tolerateError(messages_1.Messages.StrictVarName); - } - } - var init = null; - if (this.match('=')) { - this.nextToken(); - init = this.isolateCoverGrammar(this.parseAssignmentExpression); - } - else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) { - this.expect('='); - } - return this.finalize(node, new Node.VariableDeclarator(id, init)); - }; - Parser.prototype.parseVariableDeclarationList = function (options) { - var opt = { inFor: options.inFor }; - var list = []; - list.push(this.parseVariableDeclaration(opt)); - while (this.match(',')) { - this.nextToken(); - list.push(this.parseVariableDeclaration(opt)); - } - return list; - }; - Parser.prototype.parseVariableStatement = function () { - var node = this.createNode(); - this.expectKeyword('var'); - var declarations = this.parseVariableDeclarationList({ inFor: false }); - this.consumeSemicolon(); - return this.finalize(node, new Node.VariableDeclaration(declarations, 'var')); - }; - // ECMA-262 13.4 Empty Statement - Parser.prototype.parseEmptyStatement = function () { - var node = this.createNode(); - this.expect(';'); - return this.finalize(node, new Node.EmptyStatement()); - }; - // ECMA-262 13.5 Expression Statement - Parser.prototype.parseExpressionStatement = function () { - var node = this.createNode(); - var expr = this.parseExpression(); - this.consumeSemicolon(); - return this.finalize(node, new Node.ExpressionStatement(expr)); - }; - // ECMA-262 13.6 If statement - Parser.prototype.parseIfStatement = function () { - var node = this.createNode(); - var consequent; - var alternate = null; - this.expectKeyword('if'); - this.expect('('); - var test = this.parseExpression(); - if (!this.match(')') && this.config.tolerant) { - this.tolerateUnexpectedToken(this.nextToken()); - consequent = this.finalize(this.createNode(), new Node.EmptyStatement()); - } - else { - this.expect(')'); - consequent = this.parseStatement(); - if (this.matchKeyword('else')) { - this.nextToken(); - alternate = this.parseStatement(); - } - } - return this.finalize(node, new Node.IfStatement(test, consequent, alternate)); - }; - // ECMA-262 13.7.2 The do-while Statement - Parser.prototype.parseDoWhileStatement = function () { - var node = this.createNode(); - this.expectKeyword('do'); - var previousInIteration = this.context.inIteration; - this.context.inIteration = true; - var body = this.parseStatement(); - this.context.inIteration = previousInIteration; - this.expectKeyword('while'); - this.expect('('); - var test = this.parseExpression(); - this.expect(')'); - if (this.match(';')) { - this.nextToken(); - } - return this.finalize(node, new Node.DoWhileStatement(body, test)); - }; - // ECMA-262 13.7.3 The while Statement - Parser.prototype.parseWhileStatement = function () { - var node = this.createNode(); - var body; - this.expectKeyword('while'); - this.expect('('); - var test = this.parseExpression(); - if (!this.match(')') && this.config.tolerant) { - this.tolerateUnexpectedToken(this.nextToken()); - body = this.finalize(this.createNode(), new Node.EmptyStatement()); - } - else { - this.expect(')'); - var previousInIteration = this.context.inIteration; - this.context.inIteration = true; - body = this.parseStatement(); - this.context.inIteration = previousInIteration; - } - return this.finalize(node, new Node.WhileStatement(test, body)); - }; - // ECMA-262 13.7.4 The for Statement - // ECMA-262 13.7.5 The for-in and for-of Statements - Parser.prototype.parseForStatement = function () { - var init = null; - var test = null; - var update = null; - var forIn = true; - var left, right; - var node = this.createNode(); - this.expectKeyword('for'); - this.expect('('); - if (this.match(';')) { - this.nextToken(); - } - else { - if (this.matchKeyword('var')) { - init = this.createNode(); - this.nextToken(); - var previousAllowIn = this.context.allowIn; - this.context.allowIn = false; - var declarations = this.parseVariableDeclarationList({ inFor: true }); - this.context.allowIn = previousAllowIn; - if (declarations.length === 1 && this.matchKeyword('in')) { - var decl = declarations[0]; - if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) { - this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in'); - } - init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); - this.nextToken(); - left = init; - right = this.parseExpression(); - init = null; - } - else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) { - init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); - this.nextToken(); - left = init; - right = this.parseAssignmentExpression(); - init = null; - forIn = false; - } - else { - init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); - this.expect(';'); - } - } - else if (this.matchKeyword('const') || this.matchKeyword('let')) { - init = this.createNode(); - var kind = this.nextToken().value; - if (!this.context.strict && this.lookahead.value === 'in') { - init = this.finalize(init, new Node.Identifier(kind)); - this.nextToken(); - left = init; - right = this.parseExpression(); - init = null; - } - else { - var previousAllowIn = this.context.allowIn; - this.context.allowIn = false; - var declarations = this.parseBindingList(kind, { inFor: true }); - this.context.allowIn = previousAllowIn; - if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) { - init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); - this.nextToken(); - left = init; - right = this.parseExpression(); - init = null; - } - else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) { - init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); - this.nextToken(); - left = init; - right = this.parseAssignmentExpression(); - init = null; - forIn = false; - } - else { - this.consumeSemicolon(); - init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); - } - } - } - else { - var initStartToken = this.lookahead; - var previousAllowIn = this.context.allowIn; - this.context.allowIn = false; - init = this.inheritCoverGrammar(this.parseAssignmentExpression); - this.context.allowIn = previousAllowIn; - if (this.matchKeyword('in')) { - if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) { - this.tolerateError(messages_1.Messages.InvalidLHSInForIn); - } - this.nextToken(); - this.reinterpretExpressionAsPattern(init); - left = init; - right = this.parseExpression(); - init = null; - } - else if (this.matchContextualKeyword('of')) { - if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) { - this.tolerateError(messages_1.Messages.InvalidLHSInForLoop); - } - this.nextToken(); - this.reinterpretExpressionAsPattern(init); - left = init; - right = this.parseAssignmentExpression(); - init = null; - forIn = false; - } - else { - if (this.match(',')) { - var initSeq = [init]; - while (this.match(',')) { - this.nextToken(); - initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression)); - } - init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq)); - } - this.expect(';'); - } - } - } - if (typeof left === 'undefined') { - if (!this.match(';')) { - test = this.parseExpression(); - } - this.expect(';'); - if (!this.match(')')) { - update = this.parseExpression(); - } - } - var body; - if (!this.match(')') && this.config.tolerant) { - this.tolerateUnexpectedToken(this.nextToken()); - body = this.finalize(this.createNode(), new Node.EmptyStatement()); - } - else { - this.expect(')'); - var previousInIteration = this.context.inIteration; - this.context.inIteration = true; - body = this.isolateCoverGrammar(this.parseStatement); - this.context.inIteration = previousInIteration; - } - return (typeof left === 'undefined') ? - this.finalize(node, new Node.ForStatement(init, test, update, body)) : - forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) : - this.finalize(node, new Node.ForOfStatement(left, right, body)); - }; - // ECMA-262 13.8 The continue statement - Parser.prototype.parseContinueStatement = function () { - var node = this.createNode(); - this.expectKeyword('continue'); - var label = null; - if (this.lookahead.type === token_1.Token.Identifier && !this.hasLineTerminator) { - label = this.parseVariableIdentifier(); - var key = '$' + label.name; - if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { - this.throwError(messages_1.Messages.UnknownLabel, label.name); - } - } - this.consumeSemicolon(); - if (label === null && !this.context.inIteration) { - this.throwError(messages_1.Messages.IllegalContinue); - } - return this.finalize(node, new Node.ContinueStatement(label)); - }; - // ECMA-262 13.9 The break statement - Parser.prototype.parseBreakStatement = function () { - var node = this.createNode(); - this.expectKeyword('break'); - var label = null; - if (this.lookahead.type === token_1.Token.Identifier && !this.hasLineTerminator) { - label = this.parseVariableIdentifier(); - var key = '$' + label.name; - if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { - this.throwError(messages_1.Messages.UnknownLabel, label.name); - } - } - this.consumeSemicolon(); - if (label === null && !this.context.inIteration && !this.context.inSwitch) { - this.throwError(messages_1.Messages.IllegalBreak); - } - return this.finalize(node, new Node.BreakStatement(label)); - }; - // ECMA-262 13.10 The return statement - Parser.prototype.parseReturnStatement = function () { - if (!this.context.inFunctionBody) { - this.tolerateError(messages_1.Messages.IllegalReturn); - } - var node = this.createNode(); - this.expectKeyword('return'); - var hasArgument = !this.match(';') && !this.match('}') && - !this.hasLineTerminator && this.lookahead.type !== token_1.Token.EOF; - var argument = hasArgument ? this.parseExpression() : null; - this.consumeSemicolon(); - return this.finalize(node, new Node.ReturnStatement(argument)); - }; - // ECMA-262 13.11 The with statement - Parser.prototype.parseWithStatement = function () { - if (this.context.strict) { - this.tolerateError(messages_1.Messages.StrictModeWith); - } - var node = this.createNode(); - this.expectKeyword('with'); - this.expect('('); - var object = this.parseExpression(); - this.expect(')'); - var body = this.parseStatement(); - return this.finalize(node, new Node.WithStatement(object, body)); - }; - // ECMA-262 13.12 The switch statement - Parser.prototype.parseSwitchCase = function () { - var node = this.createNode(); - var test; - if (this.matchKeyword('default')) { - this.nextToken(); - test = null; - } - else { - this.expectKeyword('case'); - test = this.parseExpression(); - } - this.expect(':'); - var consequent = []; - while (true) { - if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) { - break; - } - consequent.push(this.parseStatementListItem()); - } - return this.finalize(node, new Node.SwitchCase(test, consequent)); - }; - Parser.prototype.parseSwitchStatement = function () { - var node = this.createNode(); - this.expectKeyword('switch'); - this.expect('('); - var discriminant = this.parseExpression(); - this.expect(')'); - var previousInSwitch = this.context.inSwitch; - this.context.inSwitch = true; - var cases = []; - var defaultFound = false; - this.expect('{'); - while (true) { - if (this.match('}')) { - break; - } - var clause = this.parseSwitchCase(); - if (clause.test === null) { - if (defaultFound) { - this.throwError(messages_1.Messages.MultipleDefaultsInSwitch); - } - defaultFound = true; - } - cases.push(clause); - } - this.expect('}'); - this.context.inSwitch = previousInSwitch; - return this.finalize(node, new Node.SwitchStatement(discriminant, cases)); - }; - // ECMA-262 13.13 Labelled Statements - Parser.prototype.parseLabelledStatement = function () { - var node = this.createNode(); - var expr = this.parseExpression(); - var statement; - if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) { - this.nextToken(); - var id = (expr); - var key = '$' + id.name; - if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { - this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name); - } - this.context.labelSet[key] = true; - var labeledBody = this.parseStatement(); - delete this.context.labelSet[key]; - statement = new Node.LabeledStatement(id, labeledBody); - } - else { - this.consumeSemicolon(); - statement = new Node.ExpressionStatement(expr); - } - return this.finalize(node, statement); - }; - // ECMA-262 13.14 The throw statement - Parser.prototype.parseThrowStatement = function () { - var node = this.createNode(); - this.expectKeyword('throw'); - if (this.hasLineTerminator) { - this.throwError(messages_1.Messages.NewlineAfterThrow); - } - var argument = this.parseExpression(); - this.consumeSemicolon(); - return this.finalize(node, new Node.ThrowStatement(argument)); - }; - // ECMA-262 13.15 The try statement - Parser.prototype.parseCatchClause = function () { - var node = this.createNode(); - this.expectKeyword('catch'); - this.expect('('); - if (this.match(')')) { - this.throwUnexpectedToken(this.lookahead); - } - var params = []; - var param = this.parsePattern(params); - var paramMap = {}; - for (var i = 0; i < params.length; i++) { - var key = '$' + params[i].value; - if (Object.prototype.hasOwnProperty.call(paramMap, key)) { - this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value); - } - paramMap[key] = true; - } - if (this.context.strict && param.type === syntax_1.Syntax.Identifier) { - if (this.scanner.isRestrictedWord((param).name)) { - this.tolerateError(messages_1.Messages.StrictCatchVariable); - } - } - this.expect(')'); - var body = this.parseBlock(); - return this.finalize(node, new Node.CatchClause(param, body)); - }; - Parser.prototype.parseFinallyClause = function () { - this.expectKeyword('finally'); - return this.parseBlock(); - }; - Parser.prototype.parseTryStatement = function () { - var node = this.createNode(); - this.expectKeyword('try'); - var block = this.parseBlock(); - var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null; - var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null; - if (!handler && !finalizer) { - this.throwError(messages_1.Messages.NoCatchOrFinally); - } - return this.finalize(node, new Node.TryStatement(block, handler, finalizer)); - }; - // ECMA-262 13.16 The debugger statement - Parser.prototype.parseDebuggerStatement = function () { - var node = this.createNode(); - this.expectKeyword('debugger'); - this.consumeSemicolon(); - return this.finalize(node, new Node.DebuggerStatement()); - }; - // ECMA-262 13 Statements - Parser.prototype.parseStatement = function () { - var statement = null; - switch (this.lookahead.type) { - case token_1.Token.BooleanLiteral: - case token_1.Token.NullLiteral: - case token_1.Token.NumericLiteral: - case token_1.Token.StringLiteral: - case token_1.Token.Template: - case token_1.Token.RegularExpression: - statement = this.parseExpressionStatement(); - break; - case token_1.Token.Punctuator: - var value = this.lookahead.value; - if (value === '{') { - statement = this.parseBlock(); - } - else if (value === '(') { - statement = this.parseExpressionStatement(); - } - else if (value === ';') { - statement = this.parseEmptyStatement(); - } - else { - statement = this.parseExpressionStatement(); - } - break; - case token_1.Token.Identifier: - statement = this.parseLabelledStatement(); - break; - case token_1.Token.Keyword: - switch (this.lookahead.value) { - case 'break': - statement = this.parseBreakStatement(); - break; - case 'continue': - statement = this.parseContinueStatement(); - break; - case 'debugger': - statement = this.parseDebuggerStatement(); - break; - case 'do': - statement = this.parseDoWhileStatement(); - break; - case 'for': - statement = this.parseForStatement(); - break; - case 'function': - statement = this.parseFunctionDeclaration(); - break; - case 'if': - statement = this.parseIfStatement(); - break; - case 'return': - statement = this.parseReturnStatement(); - break; - case 'switch': - statement = this.parseSwitchStatement(); - break; - case 'throw': - statement = this.parseThrowStatement(); - break; - case 'try': - statement = this.parseTryStatement(); - break; - case 'var': - statement = this.parseVariableStatement(); - break; - case 'while': - statement = this.parseWhileStatement(); - break; - case 'with': - statement = this.parseWithStatement(); - break; - default: - statement = this.parseExpressionStatement(); - break; - } - break; - default: - this.throwUnexpectedToken(this.lookahead); - } - return statement; - }; - // ECMA-262 14.1 Function Definition - Parser.prototype.parseFunctionSourceElements = function () { - var node = this.createNode(); - this.expect('{'); - var body = this.parseDirectivePrologues(); - var previousLabelSet = this.context.labelSet; - var previousInIteration = this.context.inIteration; - var previousInSwitch = this.context.inSwitch; - var previousInFunctionBody = this.context.inFunctionBody; - this.context.labelSet = {}; - this.context.inIteration = false; - this.context.inSwitch = false; - this.context.inFunctionBody = true; - while (this.startMarker.index < this.scanner.length) { - if (this.match('}')) { - break; - } - body.push(this.parseStatementListItem()); - } - this.expect('}'); - this.context.labelSet = previousLabelSet; - this.context.inIteration = previousInIteration; - this.context.inSwitch = previousInSwitch; - this.context.inFunctionBody = previousInFunctionBody; - return this.finalize(node, new Node.BlockStatement(body)); - }; - Parser.prototype.validateParam = function (options, param, name) { - var key = '$' + name; - if (this.context.strict) { - if (this.scanner.isRestrictedWord(name)) { - options.stricted = param; - options.message = messages_1.Messages.StrictParamName; - } - if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { - options.stricted = param; - options.message = messages_1.Messages.StrictParamDupe; - } - } - else if (!options.firstRestricted) { - if (this.scanner.isRestrictedWord(name)) { - options.firstRestricted = param; - options.message = messages_1.Messages.StrictParamName; - } - else if (this.scanner.isStrictModeReservedWord(name)) { - options.firstRestricted = param; - options.message = messages_1.Messages.StrictReservedWord; - } - else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { - options.stricted = param; - options.message = messages_1.Messages.StrictParamDupe; - } - } - /* istanbul ignore next */ - if (typeof Object.defineProperty === 'function') { - Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true }); - } - else { - options.paramSet[key] = true; - } - }; - Parser.prototype.parseRestElement = function (params) { - var node = this.createNode(); - this.nextToken(); - if (this.match('{')) { - this.throwError(messages_1.Messages.ObjectPatternAsRestParameter); - } - params.push(this.lookahead); - var param = this.parseVariableIdentifier(); - if (this.match('=')) { - this.throwError(messages_1.Messages.DefaultRestParameter); - } - if (!this.match(')')) { - this.throwError(messages_1.Messages.ParameterAfterRestParameter); - } - return this.finalize(node, new Node.RestElement(param)); - }; - Parser.prototype.parseFormalParameter = function (options) { - var param; - var params = []; - var token = this.lookahead; - if (token.value === '...') { - param = this.parseRestElement(params); - this.validateParam(options, param.argument, param.argument.name); - options.params.push(param); - return false; - } - param = this.parsePatternWithDefault(params); - for (var i = 0; i < params.length; i++) { - this.validateParam(options, params[i], params[i].value); - } - options.params.push(param); - return !this.match(')'); - }; - Parser.prototype.parseFormalParameters = function (firstRestricted) { - var options; - options = { - params: [], - firstRestricted: firstRestricted - }; - this.expect('('); - if (!this.match(')')) { - options.paramSet = {}; - while (this.startMarker.index < this.scanner.length) { - if (!this.parseFormalParameter(options)) { - break; - } - this.expect(','); - } - } - this.expect(')'); - return { - params: options.params, - stricted: options.stricted, - firstRestricted: options.firstRestricted, - message: options.message - }; - }; - Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) { - var node = this.createNode(); - this.expectKeyword('function'); - var isGenerator = this.match('*'); - if (isGenerator) { - this.nextToken(); - } - var message; - var id = null; - var firstRestricted = null; - if (!identifierIsOptional || !this.match('(')) { - var token = this.lookahead; - id = this.parseVariableIdentifier(); - if (this.context.strict) { - if (this.scanner.isRestrictedWord(token.value)) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName); - } - } - else { - if (this.scanner.isRestrictedWord(token.value)) { - firstRestricted = token; - message = messages_1.Messages.StrictFunctionName; - } - else if (this.scanner.isStrictModeReservedWord(token.value)) { - firstRestricted = token; - message = messages_1.Messages.StrictReservedWord; - } - } - } - var previousAllowYield = this.context.allowYield; - this.context.allowYield = !isGenerator; - var formalParameters = this.parseFormalParameters(firstRestricted); - var params = formalParameters.params; - var stricted = formalParameters.stricted; - firstRestricted = formalParameters.firstRestricted; - if (formalParameters.message) { - message = formalParameters.message; - } - var previousStrict = this.context.strict; - var body = this.parseFunctionSourceElements(); - if (this.context.strict && firstRestricted) { - this.throwUnexpectedToken(firstRestricted, message); - } - if (this.context.strict && stricted) { - this.tolerateUnexpectedToken(stricted, message); - } - this.context.strict = previousStrict; - this.context.allowYield = previousAllowYield; - return this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator)); - }; - Parser.prototype.parseFunctionExpression = function () { - var node = this.createNode(); - this.expectKeyword('function'); - var isGenerator = this.match('*'); - if (isGenerator) { - this.nextToken(); - } - var message; - var id = null; - var firstRestricted; - var previousAllowYield = this.context.allowYield; - this.context.allowYield = !isGenerator; - if (!this.match('(')) { - var token = this.lookahead; - id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier(); - if (this.context.strict) { - if (this.scanner.isRestrictedWord(token.value)) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName); - } - } - else { - if (this.scanner.isRestrictedWord(token.value)) { - firstRestricted = token; - message = messages_1.Messages.StrictFunctionName; - } - else if (this.scanner.isStrictModeReservedWord(token.value)) { - firstRestricted = token; - message = messages_1.Messages.StrictReservedWord; - } - } - } - var formalParameters = this.parseFormalParameters(firstRestricted); - var params = formalParameters.params; - var stricted = formalParameters.stricted; - firstRestricted = formalParameters.firstRestricted; - if (formalParameters.message) { - message = formalParameters.message; - } - var previousStrict = this.context.strict; - var body = this.parseFunctionSourceElements(); - if (this.context.strict && firstRestricted) { - this.throwUnexpectedToken(firstRestricted, message); - } - if (this.context.strict && stricted) { - this.tolerateUnexpectedToken(stricted, message); - } - this.context.strict = previousStrict; - this.context.allowYield = previousAllowYield; - return this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator)); - }; - // ECMA-262 14.1.1 Directive Prologues - Parser.prototype.parseDirective = function () { - var token = this.lookahead; - var directive = null; - var node = this.createNode(); - var expr = this.parseExpression(); - if (expr.type === syntax_1.Syntax.Literal) { - directive = this.getTokenRaw(token).slice(1, -1); - } - this.consumeSemicolon(); - return this.finalize(node, directive ? new Node.Directive(expr, directive) : - new Node.ExpressionStatement(expr)); - }; - Parser.prototype.parseDirectivePrologues = function () { - var firstRestricted = null; - var body = []; - while (true) { - var token = this.lookahead; - if (token.type !== token_1.Token.StringLiteral) { - break; - } - var statement = this.parseDirective(); - body.push(statement); - var directive = statement.directive; - if (typeof directive !== 'string') { - break; - } - if (directive === 'use strict') { - this.context.strict = true; - if (firstRestricted) { - this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral); - } - } - else { - if (!firstRestricted && token.octal) { - firstRestricted = token; - } - } - } - return body; - }; - // ECMA-262 14.3 Method Definitions - Parser.prototype.qualifiedPropertyName = function (token) { - switch (token.type) { - case token_1.Token.Identifier: - case token_1.Token.StringLiteral: - case token_1.Token.BooleanLiteral: - case token_1.Token.NullLiteral: - case token_1.Token.NumericLiteral: - case token_1.Token.Keyword: - return true; - case token_1.Token.Punctuator: - return token.value === '['; - } - return false; - }; - Parser.prototype.parseGetterMethod = function () { - var node = this.createNode(); - this.expect('('); - this.expect(')'); - var isGenerator = false; - var params = { - params: [], - stricted: null, - firstRestricted: null, - message: null - }; - var previousAllowYield = this.context.allowYield; - this.context.allowYield = false; - var method = this.parsePropertyMethod(params); - this.context.allowYield = previousAllowYield; - return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator)); - }; - Parser.prototype.parseSetterMethod = function () { - var node = this.createNode(); - var options = { - params: [], - firstRestricted: null, - paramSet: {} - }; - var isGenerator = false; - var previousAllowYield = this.context.allowYield; - this.context.allowYield = false; - this.expect('('); - if (this.match(')')) { - this.tolerateUnexpectedToken(this.lookahead); - } - else { - this.parseFormalParameter(options); - } - this.expect(')'); - var method = this.parsePropertyMethod(options); - this.context.allowYield = previousAllowYield; - return this.finalize(node, new Node.FunctionExpression(null, options.params, method, isGenerator)); - }; - Parser.prototype.parseGeneratorMethod = function () { - var node = this.createNode(); - var isGenerator = true; - var previousAllowYield = this.context.allowYield; - this.context.allowYield = true; - var params = this.parseFormalParameters(); - this.context.allowYield = false; - var method = this.parsePropertyMethod(params); - this.context.allowYield = previousAllowYield; - return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator)); - }; - // ECMA-262 14.4 Generator Function Definitions - Parser.prototype.parseYieldExpression = function () { - var node = this.createNode(); - this.expectKeyword('yield'); - var argument = null; - var delegate = false; - if (!this.hasLineTerminator) { - var previousAllowYield = this.context.allowYield; - this.context.allowYield = false; - delegate = this.match('*'); - if (delegate) { - this.nextToken(); - argument = this.parseAssignmentExpression(); - } - else { - if (!this.match(';') && !this.match('}') && !this.match(')') && this.lookahead.type !== token_1.Token.EOF) { - argument = this.parseAssignmentExpression(); - } - } - this.context.allowYield = previousAllowYield; - } - return this.finalize(node, new Node.YieldExpression(argument, delegate)); - }; - // ECMA-262 14.5 Class Definitions - Parser.prototype.parseClassElement = function (hasConstructor) { - var token = this.lookahead; - var node = this.createNode(); - var kind; - var key; - var value; - var computed = false; - var method = false; - var isStatic = false; - if (this.match('*')) { - this.nextToken(); - } - else { - computed = this.match('['); - key = this.parseObjectPropertyKey(); - var id = key; - if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) { - token = this.lookahead; - isStatic = true; - computed = this.match('['); - if (this.match('*')) { - this.nextToken(); - } - else { - key = this.parseObjectPropertyKey(); - } - } - } - var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead); - if (token.type === token_1.Token.Identifier) { - if (token.value === 'get' && lookaheadPropertyKey) { - kind = 'get'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - this.context.allowYield = false; - value = this.parseGetterMethod(); - } - else if (token.value === 'set' && lookaheadPropertyKey) { - kind = 'set'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - value = this.parseSetterMethod(); - } - } - else if (token.type === token_1.Token.Punctuator && token.value === '*' && lookaheadPropertyKey) { - kind = 'init'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - value = this.parseGeneratorMethod(); - method = true; - } - if (!kind && key && this.match('(')) { - kind = 'init'; - value = this.parsePropertyMethodFunction(); - method = true; - } - if (!kind) { - this.throwUnexpectedToken(this.lookahead); - } - if (kind === 'init') { - kind = 'method'; - } - if (!computed) { - if (isStatic && this.isPropertyKey(key, 'prototype')) { - this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype); - } - if (!isStatic && this.isPropertyKey(key, 'constructor')) { - if (kind !== 'method' || !method || value.generator) { - this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod); - } - if (hasConstructor.value) { - this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor); - } - else { - hasConstructor.value = true; - } - kind = 'constructor'; - } - } - return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic)); - }; - Parser.prototype.parseClassElementList = function () { - var body = []; - var hasConstructor = { value: false }; - this.expect('{'); - while (!this.match('}')) { - if (this.match(';')) { - this.nextToken(); - } - else { - body.push(this.parseClassElement(hasConstructor)); - } - } - this.expect('}'); - return body; - }; - Parser.prototype.parseClassBody = function () { - var node = this.createNode(); - var elementList = this.parseClassElementList(); - return this.finalize(node, new Node.ClassBody(elementList)); - }; - Parser.prototype.parseClassDeclaration = function (identifierIsOptional) { - var node = this.createNode(); - var previousStrict = this.context.strict; - this.context.strict = true; - this.expectKeyword('class'); - var id = (identifierIsOptional && (this.lookahead.type !== token_1.Token.Identifier)) ? null : this.parseVariableIdentifier(); - var superClass = null; - if (this.matchKeyword('extends')) { - this.nextToken(); - superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall); - } - var classBody = this.parseClassBody(); - this.context.strict = previousStrict; - return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody)); - }; - Parser.prototype.parseClassExpression = function () { - var node = this.createNode(); - var previousStrict = this.context.strict; - this.context.strict = true; - this.expectKeyword('class'); - var id = (this.lookahead.type === token_1.Token.Identifier) ? this.parseVariableIdentifier() : null; - var superClass = null; - if (this.matchKeyword('extends')) { - this.nextToken(); - superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall); - } - var classBody = this.parseClassBody(); - this.context.strict = previousStrict; - return this.finalize(node, new Node.ClassExpression(id, superClass, classBody)); - }; - // ECMA-262 15.1 Scripts - // ECMA-262 15.2 Modules - Parser.prototype.parseProgram = function () { - var node = this.createNode(); - var body = this.parseDirectivePrologues(); - while (this.startMarker.index < this.scanner.length) { - body.push(this.parseStatementListItem()); - } - return this.finalize(node, new Node.Program(body, this.sourceType)); - }; - // ECMA-262 15.2.2 Imports - Parser.prototype.parseModuleSpecifier = function () { - var node = this.createNode(); - if (this.lookahead.type !== token_1.Token.StringLiteral) { - this.throwError(messages_1.Messages.InvalidModuleSpecifier); - } - var token = this.nextToken(); - var raw = this.getTokenRaw(token); - return this.finalize(node, new Node.Literal(token.value, raw)); - }; - // import {} ...; - Parser.prototype.parseImportSpecifier = function () { - var node = this.createNode(); - var local; - var imported = this.parseIdentifierName(); - if (this.matchContextualKeyword('as')) { - this.nextToken(); - local = this.parseVariableIdentifier(); - } - else { - local = imported; - } - return this.finalize(node, new Node.ImportSpecifier(local, imported)); - }; - // {foo, bar as bas} - Parser.prototype.parseNamedImports = function () { - this.expect('{'); - var specifiers = []; - while (!this.match('}')) { - specifiers.push(this.parseImportSpecifier()); - if (!this.match('}')) { - this.expect(','); - } - } - this.expect('}'); - return specifiers; - }; - // import ...; - Parser.prototype.parseImportDefaultSpecifier = function () { - var node = this.createNode(); - var local = this.parseIdentifierName(); - return this.finalize(node, new Node.ImportDefaultSpecifier(local)); - }; - // import <* as foo> ...; - Parser.prototype.parseImportNamespaceSpecifier = function () { - var node = this.createNode(); - this.expect('*'); - if (!this.matchContextualKeyword('as')) { - this.throwError(messages_1.Messages.NoAsAfterImportNamespace); - } - this.nextToken(); - var local = this.parseIdentifierName(); - return this.finalize(node, new Node.ImportNamespaceSpecifier(local)); - }; - Parser.prototype.parseImportDeclaration = function () { - if (this.context.inFunctionBody) { - this.throwError(messages_1.Messages.IllegalImportDeclaration); - } - var node = this.createNode(); - this.expectKeyword('import'); - var src; - var specifiers = []; - if (this.lookahead.type === token_1.Token.StringLiteral) { - // import 'foo'; - src = this.parseModuleSpecifier(); - } - else { - if (this.match('{')) { - // import {bar} - specifiers = specifiers.concat(this.parseNamedImports()); - } - else if (this.match('*')) { - // import * as foo - specifiers.push(this.parseImportNamespaceSpecifier()); - } - else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) { - // import foo - specifiers.push(this.parseImportDefaultSpecifier()); - if (this.match(',')) { - this.nextToken(); - if (this.match('*')) { - // import foo, * as foo - specifiers.push(this.parseImportNamespaceSpecifier()); - } - else if (this.match('{')) { - // import foo, {bar} - specifiers = specifiers.concat(this.parseNamedImports()); - } - else { - this.throwUnexpectedToken(this.lookahead); - } - } - } - else { - this.throwUnexpectedToken(this.nextToken()); - } - if (!this.matchContextualKeyword('from')) { - var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; - this.throwError(message, this.lookahead.value); - } - this.nextToken(); - src = this.parseModuleSpecifier(); - } - this.consumeSemicolon(); - return this.finalize(node, new Node.ImportDeclaration(specifiers, src)); - }; - // ECMA-262 15.2.3 Exports - Parser.prototype.parseExportSpecifier = function () { - var node = this.createNode(); - var local = this.parseIdentifierName(); - var exported = local; - if (this.matchContextualKeyword('as')) { - this.nextToken(); - exported = this.parseIdentifierName(); - } - return this.finalize(node, new Node.ExportSpecifier(local, exported)); - }; - Parser.prototype.parseExportDeclaration = function () { - if (this.context.inFunctionBody) { - this.throwError(messages_1.Messages.IllegalExportDeclaration); - } - var node = this.createNode(); - this.expectKeyword('export'); - var exportDeclaration; - if (this.matchKeyword('default')) { - // export default ... - this.nextToken(); - if (this.matchKeyword('function')) { - // export default function foo () {} - // export default function () {} - var declaration = this.parseFunctionDeclaration(true); - exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); - } - else if (this.matchKeyword('class')) { - // export default class foo {} - var declaration = this.parseClassDeclaration(true); - exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); - } - else { - if (this.matchContextualKeyword('from')) { - this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value); - } - // export default {}; - // export default []; - // export default (1 + 2); - var declaration = this.match('{') ? this.parseObjectInitializer() : - this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression(); - this.consumeSemicolon(); - exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); - } - } - else if (this.match('*')) { - // export * from 'foo'; - this.nextToken(); - if (!this.matchContextualKeyword('from')) { - var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; - this.throwError(message, this.lookahead.value); - } - this.nextToken(); - var src = this.parseModuleSpecifier(); - this.consumeSemicolon(); - exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src)); - } - else if (this.lookahead.type === token_1.Token.Keyword) { - // export var f = 1; - var declaration = void 0; - switch (this.lookahead.value) { - case 'let': - case 'const': - declaration = this.parseLexicalDeclaration({ inFor: false }); - break; - case 'var': - case 'class': - case 'function': - declaration = this.parseStatementListItem(); - break; - default: - this.throwUnexpectedToken(this.lookahead); - } - exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null)); - } - else { - var specifiers = []; - var source = null; - var isExportFromIdentifier = false; - this.expect('{'); - while (!this.match('}')) { - isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default'); - specifiers.push(this.parseExportSpecifier()); - if (!this.match('}')) { - this.expect(','); - } - } - this.expect('}'); - if (this.matchContextualKeyword('from')) { - // export {default} from 'foo'; - // export {foo} from 'foo'; - this.nextToken(); - source = this.parseModuleSpecifier(); - this.consumeSemicolon(); - } - else if (isExportFromIdentifier) { - // export {default}; // missing fromClause - var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; - this.throwError(message, this.lookahead.value); - } - else { - // export {foo}; - this.consumeSemicolon(); - } - exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source)); - } - return exportDeclaration; - }; - return Parser; - }()); - exports.Parser = Parser; - - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - // Ensure the condition is true, otherwise throw an error. - // This is only to have a better contract semantic, i.e. another safety net - // to catch a logic error. The condition shall be fulfilled in normal case. - // Do NOT use this to enforce a certain condition on any user input. - "use strict"; - function assert(condition, message) { - /* istanbul ignore if */ - if (!condition) { - throw new Error('ASSERT: ' + message); - } - } - exports.assert = assert; - - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - "use strict"; - // Error messages should be identical to V8. - exports.Messages = { - UnexpectedToken: 'Unexpected token %0', - UnexpectedTokenIllegal: 'Unexpected token ILLEGAL', - UnexpectedNumber: 'Unexpected number', - UnexpectedString: 'Unexpected string', - UnexpectedIdentifier: 'Unexpected identifier', - UnexpectedReserved: 'Unexpected reserved word', - UnexpectedTemplate: 'Unexpected quasi %0', - UnexpectedEOS: 'Unexpected end of input', - NewlineAfterThrow: 'Illegal newline after throw', - InvalidRegExp: 'Invalid regular expression', - UnterminatedRegExp: 'Invalid regular expression: missing /', - InvalidLHSInAssignment: 'Invalid left-hand side in assignment', - InvalidLHSInForIn: 'Invalid left-hand side in for-in', - InvalidLHSInForLoop: 'Invalid left-hand side in for-loop', - MultipleDefaultsInSwitch: 'More than one default clause in switch statement', - NoCatchOrFinally: 'Missing catch or finally after try', - UnknownLabel: 'Undefined label \'%0\'', - Redeclaration: '%0 \'%1\' has already been declared', - IllegalContinue: 'Illegal continue statement', - IllegalBreak: 'Illegal break statement', - IllegalReturn: 'Illegal return statement', - StrictModeWith: 'Strict mode code may not include a with statement', - StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode', - StrictVarName: 'Variable name may not be eval or arguments in strict mode', - StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode', - StrictParamDupe: 'Strict mode function may not have duplicate parameter names', - StrictFunctionName: 'Function name may not be eval or arguments in strict mode', - StrictOctalLiteral: 'Octal literals are not allowed in strict mode.', - StrictDelete: 'Delete of an unqualified identifier in strict mode.', - StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode', - StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode', - StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode', - StrictReservedWord: 'Use of future reserved word in strict mode', - TemplateOctalLiteral: 'Octal literals are not allowed in template strings.', - ParameterAfterRestParameter: 'Rest parameter must be last formal parameter', - DefaultRestParameter: 'Unexpected token =', - ObjectPatternAsRestParameter: 'Unexpected token {', - DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals', - ConstructorSpecialMethod: 'Class constructor may not be an accessor', - DuplicateConstructor: 'A class may only have one constructor', - StaticPrototype: 'Classes may not have static property named prototype', - MissingFromClause: 'Unexpected token', - NoAsAfterImportNamespace: 'Unexpected token', - InvalidModuleSpecifier: 'Unexpected token', - IllegalImportDeclaration: 'Unexpected token', - IllegalExportDeclaration: 'Unexpected token', - DuplicateBinding: 'Duplicate binding %0', - ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer' - }; - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - "use strict"; - var ErrorHandler = (function () { - function ErrorHandler() { - this.errors = []; - this.tolerant = false; - } - ; - ErrorHandler.prototype.recordError = function (error) { - this.errors.push(error); - }; - ; - ErrorHandler.prototype.tolerate = function (error) { - if (this.tolerant) { - this.recordError(error); - } - else { - throw error; - } - }; - ; - ErrorHandler.prototype.constructError = function (msg, column) { - var error = new Error(msg); - try { - throw error; - } - catch (base) { - /* istanbul ignore else */ - if (Object.create && Object.defineProperty) { - error = Object.create(base); - Object.defineProperty(error, 'column', { value: column }); - } - } - finally { - return error; - } - }; - ; - ErrorHandler.prototype.createError = function (index, line, col, description) { - var msg = 'Line ' + line + ': ' + description; - var error = this.constructError(msg, col); - error.index = index; - error.lineNumber = line; - error.description = description; - return error; - }; - ; - ErrorHandler.prototype.throwError = function (index, line, col, description) { - throw this.createError(index, line, col, description); - }; - ; - ErrorHandler.prototype.tolerateError = function (index, line, col, description) { - var error = this.createError(index, line, col, description); - if (this.tolerant) { - this.recordError(error); - } - else { - throw error; - } - }; - ; - return ErrorHandler; - }()); - exports.ErrorHandler = ErrorHandler; - - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - "use strict"; - (function (Token) { - Token[Token["BooleanLiteral"] = 1] = "BooleanLiteral"; - Token[Token["EOF"] = 2] = "EOF"; - Token[Token["Identifier"] = 3] = "Identifier"; - Token[Token["Keyword"] = 4] = "Keyword"; - Token[Token["NullLiteral"] = 5] = "NullLiteral"; - Token[Token["NumericLiteral"] = 6] = "NumericLiteral"; - Token[Token["Punctuator"] = 7] = "Punctuator"; - Token[Token["StringLiteral"] = 8] = "StringLiteral"; - Token[Token["RegularExpression"] = 9] = "RegularExpression"; - Token[Token["Template"] = 10] = "Template"; - })(exports.Token || (exports.Token = {})); - var Token = exports.Token; - ; - exports.TokenName = {}; - exports.TokenName[Token.BooleanLiteral] = 'Boolean'; - exports.TokenName[Token.EOF] = ''; - exports.TokenName[Token.Identifier] = 'Identifier'; - exports.TokenName[Token.Keyword] = 'Keyword'; - exports.TokenName[Token.NullLiteral] = 'Null'; - exports.TokenName[Token.NumericLiteral] = 'Numeric'; - exports.TokenName[Token.Punctuator] = 'Punctuator'; - exports.TokenName[Token.StringLiteral] = 'String'; - exports.TokenName[Token.RegularExpression] = 'RegularExpression'; - exports.TokenName[Token.Template] = 'Template'; - - -/***/ }, -/* 8 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var assert_1 = __webpack_require__(4); - var messages_1 = __webpack_require__(5); - var character_1 = __webpack_require__(9); - var token_1 = __webpack_require__(7); - function hexValue(ch) { - return '0123456789abcdef'.indexOf(ch.toLowerCase()); - } - function octalValue(ch) { - return '01234567'.indexOf(ch); - } - var Scanner = (function () { - function Scanner(code, handler) { - this.source = code; - this.errorHandler = handler; - this.trackComment = false; - this.length = code.length; - this.index = 0; - this.lineNumber = (code.length > 0) ? 1 : 0; - this.lineStart = 0; - this.curlyStack = []; - } - ; - Scanner.prototype.eof = function () { - return this.index >= this.length; - }; - ; - Scanner.prototype.throwUnexpectedToken = function (message) { - if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; } - this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message); - }; - ; - Scanner.prototype.tolerateUnexpectedToken = function () { - this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, messages_1.Messages.UnexpectedTokenIllegal); - }; - ; - // ECMA-262 11.4 Comments - Scanner.prototype.skipSingleLineComment = function (offset) { - var comments; - var start, loc; - if (this.trackComment) { - comments = []; - start = this.index - offset; - loc = { - start: { - line: this.lineNumber, - column: this.index - this.lineStart - offset - }, - end: {} - }; - } - while (!this.eof()) { - var ch = this.source.charCodeAt(this.index); - ++this.index; - if (character_1.Character.isLineTerminator(ch)) { - if (this.trackComment) { - loc.end = { - line: this.lineNumber, - column: this.index - this.lineStart - 1 - }; - var entry = { - multiLine: false, - slice: [start + offset, this.index - 1], - range: [start, this.index - 1], - loc: loc - }; - comments.push(entry); - } - if (ch === 13 && this.source.charCodeAt(this.index) === 10) { - ++this.index; - } - ++this.lineNumber; - this.lineStart = this.index; - return comments; - } - } - if (this.trackComment) { - loc.end = { - line: this.lineNumber, - column: this.index - this.lineStart - }; - var entry = { - multiLine: false, - slice: [start + offset, this.index], - range: [start, this.index], - loc: loc - }; - comments.push(entry); - } - return comments; - }; - ; - Scanner.prototype.skipMultiLineComment = function () { - var comments; - var start, loc; - if (this.trackComment) { - comments = []; - start = this.index - 2; - loc = { - start: { - line: this.lineNumber, - column: this.index - this.lineStart - 2 - }, - end: {} - }; - } - while (!this.eof()) { - var ch = this.source.charCodeAt(this.index); - if (character_1.Character.isLineTerminator(ch)) { - if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) { - ++this.index; - } - ++this.lineNumber; - ++this.index; - this.lineStart = this.index; - } - else if (ch === 0x2A) { - // Block comment ends with '*/'. - if (this.source.charCodeAt(this.index + 1) === 0x2F) { - this.index += 2; - if (this.trackComment) { - loc.end = { - line: this.lineNumber, - column: this.index - this.lineStart - }; - var entry = { - multiLine: true, - slice: [start + 2, this.index - 2], - range: [start, this.index], - loc: loc - }; - comments.push(entry); - } - return comments; - } - ++this.index; - } - else { - ++this.index; - } - } - // Ran off the end of the file - the whole thing is a comment - if (this.trackComment) { - loc.end = { - line: this.lineNumber, - column: this.index - this.lineStart - }; - var entry = { - multiLine: true, - slice: [start + 2, this.index], - range: [start, this.index], - loc: loc - }; - comments.push(entry); - } - this.tolerateUnexpectedToken(); - return comments; - }; - ; - Scanner.prototype.scanComments = function () { - var comments; - if (this.trackComment) { - comments = []; - } - var start = (this.index === 0); - while (!this.eof()) { - var ch = this.source.charCodeAt(this.index); - if (character_1.Character.isWhiteSpace(ch)) { - ++this.index; - } - else if (character_1.Character.isLineTerminator(ch)) { - ++this.index; - if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) { - ++this.index; - } - ++this.lineNumber; - this.lineStart = this.index; - start = true; - } - else if (ch === 0x2F) { - ch = this.source.charCodeAt(this.index + 1); - if (ch === 0x2F) { - this.index += 2; - var comment = this.skipSingleLineComment(2); - if (this.trackComment) { - comments = comments.concat(comment); - } - start = true; - } - else if (ch === 0x2A) { - this.index += 2; - var comment = this.skipMultiLineComment(); - if (this.trackComment) { - comments = comments.concat(comment); - } - } - else { - break; - } - } - else if (start && ch === 0x2D) { - // U+003E is '>' - if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) { - // '-->' is a single-line comment - this.index += 3; - var comment = this.skipSingleLineComment(3); - if (this.trackComment) { - comments = comments.concat(comment); - } - } - else { - break; - } - } - else if (ch === 0x3C) { - if (this.source.slice(this.index + 1, this.index + 4) === '!--') { - this.index += 4; // ` - - -
- 1.7.0 -
    -
  • - Preprocessors! - Enjoy a whole list of preprocessors for HTML(Jade & markdown), CSS(SCSS & LESS) and JavaScript(CoffeeScript - & Babel).
  • -
  • More awesome font for code.
  • -
-
-
- 1.6.0 -
    -
  • You can now configure Web-Maker to not replace new tab page from the settings. It is always accessible from the icon in - the top-right.
  • -
  • Download current code as HTML file with Ctrl/⌘ + S keyboard shortcut.
  • -
  • New notifications panel added so you are always aware of the new changes in Web-Maker.
  • -
-
diff --git a/src/partials/help-modal.html b/src/partials/help-modal.html deleted file mode 100644 index 8ac40e4..0000000 --- a/src/partials/help-modal.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -

-
Web Maker
- v3.2.0 -

- -
-

Made with - 💖 & - 🙌 by - Kushagra Gour -

-

- Read the documentation. -

-

Tweet out your feature requests, comments & suggestions to - @webmakerApp.

-

Like this extension? Please - rate it here.

-

- - - - - Share Web Maker - - - - Chat - - - - Report a bug -

- -

-

Awesome libraries used

- -

- -

-

License

- "Web Maker" is - open-source under the - MIT License. -

-
diff --git a/src/partials/keyboard-shortcuts.html b/src/partials/keyboard-shortcuts.html deleted file mode 100644 index b94cc08..0000000 --- a/src/partials/keyboard-shortcuts.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - -

Keyboard Shortcuts

- -
-
-

Global

-

- - Ctrl/⌘ + Shift + ? - - See keyboard shortcuts -

-

- - Ctrl/⌘ + Shift + 5 - - Refresh preview -

-

- - Ctrl/⌘ + S - - Save current creations -

-

- - Ctrl/⌘ + O - - Open list of saved creations -

-

- - Ctrl + L - - Clear console (works when console input is focused) -

-

- - Esc - - Close saved creations panel & modals -

-
-
-

Editor

-

- - Ctrl/⌘ + F - - Find -

-

- - Ctrl/⌘ + G - - Select next match -

-

- - Ctrl/⌘ + Shift + G - - Select previous match -

-

- - Ctrl/⌘ + Opt/Alt + F - - Find & replace -

-

- - Shift + Tab - - Realign code -

-

- - Ctrl/⌘ + ] - - Indent code right -

-

- - Ctrl/⌘ + [ - - Indent code left -

-

- - Tab - - Emmet code completion Read more -

-

- - Ctrl/⌘ + / - - Single line comment -

-
-
\ No newline at end of file diff --git a/src/partials/login-modal.html b/src/partials/login-modal.html deleted file mode 100644 index f84b79f..0000000 --- a/src/partials/login-modal.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -

Login / Signup

- -
-

- -

-

- -

-

- -

-

- Join a community of 50,000+ Developers -

-
\ No newline at end of file diff --git a/src/partials/onboard-modal.html b/src/partials/onboard-modal.html deleted file mode 100644 index 1e5d35d..0000000 --- a/src/partials/onboard-modal.html +++ /dev/null @@ -1,73 +0,0 @@ -
- -

Welcome to Web Maker 3.0 (beta)

-
- -
-
-
- - - -
-

- Open Web Maker anytime by visiting https://webmakerapp.com/app/ - Even when you are offline! It just works! 😱 Drag the following bookmarklet on your bookmark bar to create a quick access shortcut: - - - Web Maker - -

-
-
-
- - - -
-

- Open Web Maker anytime by clicking the - - - button in top-right side of your browser. -

-
-
-
- - - -
-

- Configure and customize settings by clicking the gear icon ( - - - ) in bottom right of the app. -

-
-
-
- - - -
-

- Follow @webmakerApp to know about the new upcoming - features! -

-
-
- -

- If you are an existing Chrome extension user, you can import your creations from there to here. Learn how to export/import. -

- -

- -

\ No newline at end of file diff --git a/src/partials/pledge-modal.html b/src/partials/pledge-modal.html deleted file mode 100644 index a81d572..0000000 --- a/src/partials/pledge-modal.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - -
-

Support the Developer

-

Hi, Kushagra here! Web Maker is a free and open-source project. To keep myself motivated for working on such open-source and free side projects, I am accepting donations. Your pledge, no matter how small, will act as an appreciation towards my work and keep me going forward making Web Maker more awesome🔥. So please consider donating. 🙏🏼 (could be as small as $1/month). -

- - - - - Or, make a one time donation - -
\ No newline at end of file diff --git a/src/preview.html b/src/preview.html index 8bddf9c..777c33f 100644 --- a/src/preview.html +++ b/src/preview.html @@ -2,8 +2,7 @@ - + - - + diff --git a/src/script.js b/src/script.js deleted file mode 100644 index d5dee8d..0000000 --- a/src/script.js +++ /dev/null @@ -1,2700 +0,0 @@ -/* global trackEvent */ -/* global layoutBtn1, layoutBtn2, layoutBtn3, helpModal, notificationsModal, addLibraryModal, -onboardModal, layoutBtn1, layoutBtn2, layoutBtn3, layoutBtn4, layoutBtn5, onboardModal, -onboardModal, addLibraryModal, addLibraryModal, notificationsBtn, notificationsModal, -notificationsModal, notificationsBtn, codepenBtn, saveHtmlBtn, saveBtn, -onboardModal, settingsModal, notificationsBtn, editorThemeLinkTag, TextareaAutoComplete, -savedItemCountEl, indentationSizeValueEl, pledgeModal -runBtn, searchInput, consoleEl, consoleLogEl, logCountEl, fontStyleTag, fontStyleTemplate, -customEditorFontInput, cssSettingsModal, cssSettingsBtn, acssSettingsTextarea, -globalConsoleContainerEl, externalLibrarySearchInput, keyboardShortcutsModal, headerAvatarImg, -loginModal, profileModal, profileAvatarImg, profileUserName, openItemsBtn, askToImportModal -*/ -/* eslint-disable no-extra-semi */ -(function(alertsService, itemService) { - /* eslint-enable no-extra-semi */ - var scope = scope || {}; - var version = '3.2.0'; - - if (window.DEBUG) { - window.scope = scope; - } - - const defaultSettings = { - preserveLastCode: true, - replaceNewTab: false, - htmlMode: 'html', - jsMode: 'js', - cssMode: 'css', - isCodeBlastOn: false, - indentWith: 'spaces', - indentSize: 2, - editorTheme: 'monokai', - keymap: 'sublime', - fontSize: 16, - refreshOnResize: false, - autoPreview: true, - editorFont: 'FiraCode', - editorCustomFont: '', - autoSave: true, - autoComplete: true, - preserveConsoleLogs: true, - lightVersion: false, - lineWrap: true, - infiniteLoopTimeout: 1000 - }; - var HtmlModes = { - HTML: 'html', - MARKDOWN: 'markdown', - JADE: 'jade' // unsafe eval is put in manifest for this file - }; - var CssModes = { - CSS: 'css', - SCSS: 'scss', - SASS: 'sass', - LESS: 'less', - STYLUS: 'stylus', - ACSS: 'acss' - }; - var JsModes = { - JS: 'js', - ES6: 'es6', - COFFEESCRIPT: 'coffee', - TS: 'typescript' - }; - var modes = {}; - modes[HtmlModes.HTML] = { - label: 'HTML', - cmMode: 'htmlmixed', - codepenVal: 'none' - }; - modes[HtmlModes.MARKDOWN] = { - label: 'Markdown', - cmMode: 'markdown', - codepenVal: 'markdown' - }; - modes[HtmlModes.JADE] = { label: 'Pug', cmMode: 'pug', codepenVal: 'pug' }; - modes[JsModes.JS] = { label: 'JS', cmMode: 'javascript', codepenVal: 'none' }; - modes[JsModes.COFFEESCRIPT] = { - label: 'CoffeeScript', - cmMode: 'coffeescript', - codepenVal: 'coffeescript' - }; - modes[JsModes.ES6] = { - label: 'ES6 (Babel)', - cmMode: 'jsx', - codepenVal: 'babel' - }; - modes[JsModes.TS] = { - label: 'TypeScript', - cmPath: 'jsx', - cmMode: 'text/typescript-jsx', - codepenVal: 'typescript' - }; - modes[CssModes.CSS] = { - label: 'CSS', - cmPath: 'css', - cmMode: 'css', - codepenVal: 'none' - }; - modes[CssModes.SCSS] = { - label: 'SCSS', - cmPath: 'css', - cmMode: 'text/x-scss', - codepenVal: 'scss' - }; - modes[CssModes.SASS] = { label: 'SASS', cmMode: 'sass', codepenVal: 'sass' }; - modes[CssModes.LESS] = { - label: 'LESS', - cmPath: 'css', - cmMode: 'text/x-less', - codepenVal: 'less' - }; - modes[CssModes.STYLUS] = { - label: 'Stylus', - cmMode: 'stylus', - codepenVal: 'stylus' - }; - modes[CssModes.ACSS] = { - label: 'Atomic CSS', - cmPath: 'css', - cmMode: 'css', - codepenVal: 'notsupported', - cmDisable: true, - hasSettings: true - }; - - const AUTO_SAVE_INTERVAL = 15000; // 15 seconds - const BASE_PATH = chrome.extension || window.DEBUG ? '/' : '/app'; - const DEFAULT_PROFILE_IMG = - "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='#ccc' d='M12,19.2C9.5,19.2 7.29,17.92 6,16C6.03,14 10,12.9 12,12.9C14,12.9 17.97,14 18,16C16.71,17.92 14.5,19.2 12,19.2M12,5A3,3 0 0,1 15,8A3,3 0 0,1 12,11A3,3 0 0,1 9,8A3,3 0 0,1 12,5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z' /%3E%3C/svg%3E"; - - const LocalStorageKeys = { - LOGIN_AND_SAVE_MESSAGE_SEEN: 'loginAndsaveMessageSeen', - ASKED_TO_IMPORT_CREATIONS: 'askedToImportCreations' - }; - var updateTimer, - updateDelay = 500, - autoSaveInterval, - unsavedEditWarningCount = 15, - currentLayoutMode, - hasSeenNotifications = true, - htmlMode = HtmlModes.HTML, - jsMode = JsModes.JS, - cssMode = CssModes.CSS, - sass, - currentItem, - unsavedEditCount, - savedItems, - minCodeWrapSize = 33, - mainSplitInstance, - codeSplitInstance, - prefs = {}, - codeInPreview = { html: null, css: null, js: null }, - isSavedItemsPaneOpen = false, - editorWithFocus, - logCount = 0, - isAutoSavingEnabled, - // DOM nodes - frame = $('#demo-frame'), - htmlCode = $('#js-html-code'), - cssCode = $('#js-css-code'), - jsCode = $('#js-js-code'), - codepenForm = $('#js-codepen-form'), - savedItemsPane = $('#js-saved-items-pane'), - savedItemsPaneCloseBtn = $('#js-saved-items-pane-close-btn'), - htmlModelLabel = $('#js-html-mode-label'), - cssModelLabel = $('#js-css-mode-label'), - jsModelLabel = $('#js-js-mode-label'), - titleInput = $('#js-title-input'), - addLibrarySelect = $('#js-add-library-select'), - externalJsTextarea = $('#js-external-js'), - externalCssTextarea = $('#js-external-css'); - - scope.cm = {}; - scope.frame = frame; - scope.demoFrameDocument = - frame.contentDocument || frame.contentWindow.document; - - // Check all the code wrap if they are minimized or maximized - function updateCodeWrapCollapseStates() { - // This is debounced! - clearTimeout(updateCodeWrapCollapseStates.timeout); - updateCodeWrapCollapseStates.timeout = setTimeout(function() { - const prop = - currentLayoutMode === 2 || currentLayoutMode === 5 ? 'width' : 'height'; - [htmlCode, cssCode, jsCode].forEach(function(el) { - const bounds = el.getBoundingClientRect(); - const size = bounds[prop]; - if (size < 100) { - el.classList.add('is-minimized'); - } else { - el.classList.remove('is-minimized'); - } - if (el.style[prop].indexOf(`100% - ${minCodeWrapSize * 2}px`) !== -1) { - el.classList.add('is-maximized'); - } else { - el.classList.remove('is-maximized'); - } - }); - }, 50); - } - - function toggleCodeWrapCollapse(codeWrapEl) { - if ( - codeWrapEl.classList.contains('is-minimized') || - codeWrapEl.classList.contains('is-maximized') - ) { - codeWrapEl.classList.remove('is-minimized'); - codeWrapEl.classList.remove('is-maximized'); - codeSplitInstance.setSizes([33.3, 33.3, 33.3]); - } else { - const id = parseInt(codeWrapEl.dataset.codeWrapId, 10); - var arr = [ - `${minCodeWrapSize}px`, - `${minCodeWrapSize}px`, - `${minCodeWrapSize}px` - ]; - arr[id] = `calc(100% - ${minCodeWrapSize * 2}px)`; - - codeSplitInstance.setSizes(arr); - codeWrapEl.classList.add('is-maximized'); - } - } - // Returns the sizes of main code & preview panes. - function getMainSplitSizesToApply() { - var mainSplitSizes; - if (currentItem && currentItem.mainSizes) { - // For layout mode 3, main panes are reversed using flex-direction. - // So we need to apply the saved sizes in reverse order. - mainSplitSizes = - currentLayoutMode === 3 - ? [currentItem.mainSizes[1], currentItem.mainSizes[0]] - : currentItem.mainSizes; - } else { - mainSplitSizes = currentLayoutMode === 5 ? [75, 25] : [50, 50]; - } - return mainSplitSizes; - } - - function resetSplitting() { - if (codeSplitInstance) { - codeSplitInstance.destroy(); - } - if (mainSplitInstance) { - mainSplitInstance.destroy(); - } - - var options = { - direction: - currentLayoutMode === 2 || currentLayoutMode === 5 - ? 'horizontal' - : 'vertical', - minSize: minCodeWrapSize, - gutterSize: 6, - onDragStart: function() { - document.body.classList.add('is-dragging'); - }, - onDragEnd: function() { - updateCodeWrapCollapseStates(); - document.body.classList.remove('is-dragging'); - } - }; - if (currentItem && currentItem.sizes) { - options.sizes = currentItem.sizes; - } else { - options.sizes = [33.33, 33.33, 33.33]; - } - - codeSplitInstance = Split( - ['#js-html-code', '#js-css-code', '#js-js-code'], - options - ); - mainSplitInstance = Split(['#js-code-side', '#js-demo-side'], { - direction: currentLayoutMode === 2 ? 'vertical' : 'horizontal', - minSize: 150, - gutterSize: 6, - sizes: getMainSplitSizesToApply(), - onDragEnd: function() { - if (prefs.refreshOnResize) { - // Running preview updation in next call stack, so that error there - // doesn't affect this dragend listener. - setTimeout(function() { - scope.setPreviewContent(true); - }, 1); - } - } - }); - } - function toggleLayout(mode) { - /* eslint-disable no-param-reassign */ - mode = window.innerWidth < 500 ? 2 : mode; - - if (currentLayoutMode === mode) { - mainSplitInstance.setSizes(getMainSplitSizesToApply()); - codeSplitInstance.setSizes(currentItem.sizes || [33.33, 33.33, 33.33]); - currentLayoutMode = mode; - return; - } - currentLayoutMode = mode; - // Remove all layout classes - [1, 2, 3, 4, 5].forEach(layoutNumber => { - window[`layoutBtn${layoutNumber}`].classList.remove('selected'); - document.body.classList.remove(`layout-${layoutNumber}`); - }); - $('#layoutBtn' + mode).classList.add('selected'); - document.body.classList.add('layout-' + mode); - - resetSplitting(); - scope.setPreviewContent(true); - } - - function onExternalLibChange() { - utils.log('onExternalLibChange'); - updateExternalLibUi(); - scope.setPreviewContent(true); - alertsService.add('Libraries updated.'); - } - - function updateExternalLibUi() { - // Calculate no. of external libs - var noOfExternalLibs = 0; - noOfExternalLibs += externalJsTextarea.value - .split('\n') - .filter(lib => !!lib).length; - noOfExternalLibs += externalCssTextarea.value - .split('\n') - .filter(lib => !!lib).length; - if (noOfExternalLibs) { - $('#js-external-lib-count').textContent = noOfExternalLibs; - $('#js-external-lib-count').style.display = 'inline'; - } else { - $('#js-external-lib-count').style.display = 'none'; - } - } - - function saveSetting(setting, value) { - const d = deferred(); - const obj = { - [setting]: value - }; - db.local.set(obj, d.resolve); - return d.promise; - } - - // Save current item to storage - function saveItem() { - if ( - !window.user && - !window.localStorage[LocalStorageKeys.LOGIN_AND_SAVE_MESSAGE_SEEN] - ) { - const answer = confirm( - 'Saving without signing in will save your work only on this machine and this browser. If you want it to be secure & available anywhere, please login in your account and then save.\n\nDo you still want to continue saving locally?' - ); - window.localStorage[LocalStorageKeys.LOGIN_AND_SAVE_MESSAGE_SEEN] = true; - if (!answer) { - trackEvent('ui', LocalStorageKeys.LOGIN_AND_SAVE_MESSAGE_SEEN, 'login'); - closeAllOverlays(); - loginModal.classList.add('is-modal-visible'); - return; - } - trackEvent('ui', LocalStorageKeys.LOGIN_AND_SAVE_MESSAGE_SEEN, 'local'); - } - var isNewItem = !currentItem.id; - currentItem.id = currentItem.id || 'item-' + utils.generateRandomId(); - saveBtn.classList.add('is-loading'); - saveCode().then(() => { - saveBtn.classList.remove('is-loading'); - // If this is the first save, and auto-saving settings is enabled, - // then start auto-saving from now on. - // This is done in `saveCode()` completion so that the - // auto-save notification overrides the `saveCode` function's notification. - if (!isAutoSavingEnabled && prefs.autoSave) { - isAutoSavingEnabled = true; - alertsService.add('Auto-save enabled.'); - } - }); - // Push into the items hash if its a new item being saved - if (isNewItem) { - itemService.setItemForUser(currentItem.id); - } - } - - // Keeps getting called after certain interval to auto-save current creation - // if it needs to be. - function autoSaveLoop() { - if (isAutoSavingEnabled && unsavedEditCount) { - saveItem(); - } - } - - // Calculates the sizes of html, css & js code panes. - function getCodePaneSizes() { - var sizes; - var dimensionProperty = - currentLayoutMode === 2 || currentLayoutMode === 5 ? 'width' : 'height'; - try { - sizes = [ - htmlCode.style[dimensionProperty], - cssCode.style[dimensionProperty], - jsCode.style[dimensionProperty] - ]; - } catch (e) { - sizes = [33.33, 33.33, 33.33]; - } finally { - /* eslint-disable no-unsafe-finally */ - return sizes; - - /* eslint-enable no-unsafe-finally */ - } - } - - // Calculates the current sizes of code & preview panes. - function getMainPaneSizes() { - var sizes; - var dimensionProperty = currentLayoutMode === 2 ? 'height' : 'width'; - try { - sizes = [ - +$('#js-code-side').style[dimensionProperty].match(/([\d.]+)%/)[1], - +$('#js-demo-side').style[dimensionProperty].match(/([\d.]+)%/)[1] - ]; - } catch (e) { - sizes = [50, 50]; - } finally { - /* eslint-disable no-unsafe-finally */ - return sizes; - - /* eslint-enable no-unsafe-finally */ - } - } - - function saveCode(key) { - currentItem.title = titleInput.value; - currentItem.html = scope.cm.html.getValue(); - currentItem.css = scope.cm.css.getValue(); - currentItem.js = scope.cm.js.getValue(); - currentItem.htmlMode = htmlMode; - currentItem.cssMode = cssMode; - currentItem.jsMode = jsMode; - if (modes[cssMode].hasSettings) { - currentItem.cssSettings = { - acssConfig: scope.acssSettingsCm.getValue() - }; - } - currentItem.updatedOn = Date.now(); - currentItem.layoutMode = currentLayoutMode; - currentItem.externalLibs = { - js: externalJsTextarea.value, - css: externalCssTextarea.value - }; - - currentItem.sizes = getCodePaneSizes(); - currentItem.mainSizes = getMainPaneSizes(); - - utils.log('saving key', key || currentItem.id, currentItem); - - function onSaveComplete() { - if (window.user && !navigator.onLine) { - alertsService.add( - 'Item saved locally. Will save to account when you are online.' - ); - } else { - alertsService.add('Item saved.'); - } - unsavedEditCount = 0; - saveBtn.classList.remove('is-marked'); - } - - return itemService - .setItem(key || currentItem.id, currentItem) - .then(onSaveComplete); - } - - function populateItemsInSavedPane(items) { - var html = ''; - if (items.length) { - // TODO: sort desc. by updation date - items.sort(function(a, b) { - return b.updatedOn - a.updatedOn; - }); - items.forEach(function(item) { - html += - '
' + - '' + - '

' + - item.title + - '

Last updated: ' + - utils.getHumanDate(item.updatedOn) + - '
'; - }); - savedItemCountEl.textContent = '(' + items.length + ')'; - savedItemCountEl.style.display = 'inline'; - } else { - html += '

Nothing saved here.

'; - savedItemCountEl.style.display = 'none'; - } - savedItemsPane.querySelector('#js-saved-items-wrap').innerHTML = html; - toggleSavedItemsPane(); - // HACK: Set overflow after sometime so that the items can animate without getting cropped. - // setTimeout(() => $('#js-saved-items-wrap').style.overflowY = 'auto', 1000); - } - - function toggleSavedItemsPane(shouldOpen) { - if (shouldOpen === false) { - savedItemsPane.classList.remove('is-open'); - } else { - savedItemsPane.classList.toggle('is-open'); - } - isSavedItemsPaneOpen = savedItemsPane.classList.contains('is-open'); - if (isSavedItemsPaneOpen) { - searchInput.focus(); - } else { - searchInput.value = ''; - // Give last focused editor, focus again - if (editorWithFocus) { - editorWithFocus.focus(); - } - } - document.body.classList[isSavedItemsPaneOpen ? 'add' : 'remove']( - 'overlay-visible' - ); - } - - /** - * Fetches all items from storage - * @param {boolean} shouldSaveGlobally Whether to store the fetched items in global arr for later use. - * @return {promise} Promise. - */ - async function fetchItems(shouldSaveGlobally, shouldFetchLocally) { - var d = deferred(); - savedItems = {}; - var items = []; - if (window.user && !shouldFetchLocally) { - items = await itemService.getAllItems(); - utils.log('got items'); - if (shouldSaveGlobally) { - items.forEach(item => { - savedItems[item.id] = item; - }); - } - d.resolve(items); - return d.promise; - } - db.local.get('items', function(result) { - var itemIds = Object.getOwnPropertyNames(result.items || {}); - if (!itemIds.length) { - d.resolve([]); - } - - trackEvent('fn', 'fetchItems', itemIds.length); - for (let i = 0; i < itemIds.length; i++) { - /* eslint-disable no-loop-func */ - db.local.get(itemIds[i], function(itemResult) { - if (shouldSaveGlobally) { - savedItems[itemIds[i]] = itemResult[itemIds[i]]; - } - items.push(itemResult[itemIds[i]]); - // Check if we have all items now. - if (itemIds.length === items.length) { - d.resolve(items); - } - }); - - /* eslint-enable no-loop-func */ - } - }); - return d.promise; - } - - function openSavedItemsPane() { - openItemsBtn.classList.add('is-loading'); - fetchItems(true).then(function(items) { - openItemsBtn.classList.remove('is-loading'); - populateItemsInSavedPane(items); - }); - } - function setCurrentItem(item) { - currentItem = item; - utils.log('Current Item set', item); - - // Reset auto-saving flag - isAutoSavingEnabled = false; - // Reset unsaved count, in UI also. - unsavedEditCount = 0; - saveBtn.classList.remove('is-marked'); - } - // Creates a new item with passed item's contents - function forkItem(sourceItem) { - if (unsavedEditCount) { - var shouldDiscard = confirm( - 'You have unsaved changes in your current work. Do you want to discard unsaved changes and continue?' - ); - if (!shouldDiscard) { - return; - } - } - const fork = JSON.parse(JSON.stringify(sourceItem)); - delete fork.id; - fork.title = '(Forked) ' + sourceItem.title; - fork.updatedOn = Date.now(); - setCurrentItem(fork); - refreshEditor(); - alertsService.add(`"${sourceItem.title}" was forked`); - trackEvent('fn', 'itemForked'); - } - function createNewItem() { - var d = new Date(); - setCurrentItem({ - title: - 'Untitled ' + - d.getDate() + - '-' + - (d.getMonth() + 1) + - '-' + - d.getHours() + - ':' + - d.getMinutes(), - html: '', - css: '', - js: '', - externalLibs: { js: '', css: '' }, - layoutMode: currentLayoutMode - }); - refreshEditor(); - alertsService.add('New item created'); - } - function openItem(itemId) { - setCurrentItem(savedItems[itemId]); - refreshEditor(); - alertsService.add('Saved item loaded'); - } - function removeItem(itemId) { - var itemTile = document.querySelector( - '.js-saved-item-tile[data-item-id="' + itemId + '"]' - ); - var answer = confirm( - `Are you sure you want to delete "${savedItems[itemId].title}"?` - ); - if (!answer) { - return; - } - - itemTile.remove(); - // Remove from items list - itemService.unsetItemForUser(itemId); - - // Remove individual item too. - itemService.removeItem(itemId).then(() => { - alertsService.add('Item removed.'); - // This item is open in the editor. Lets open a new one. - if (currentItem.id === itemId) { - createNewItem(); - } - }); - - // Remove from cached list - delete savedItems[itemId]; - - trackEvent('fn', 'itemRemoved'); - } - - function refreshEditor() { - titleInput.value = currentItem.title || 'Untitled'; - externalJsTextarea.value = - (currentItem.externalLibs && currentItem.externalLibs.js) || ''; - externalCssTextarea.value = - (currentItem.externalLibs && currentItem.externalLibs.css) || ''; - - utils.log('refresh editor'); - // Set the modes manually here, so that the preview refresh triggered by the `setValue` - // statements below, operate on correct modes. - htmlMode = currentItem.htmlMode || prefs.htmlMode || HtmlModes.HTML; - cssMode = currentItem.cssMode || prefs.cssMode || CssModes.CSS; - jsMode = currentItem.jsMode || prefs.jsMode || JsModes.JS; - - scope.cm.html.setValue(currentItem.html); - scope.cm.css.setValue(currentItem.css); - scope.cm.js.setValue(currentItem.js); - scope.cm.html.refresh(); - scope.cm.css.refresh(); - scope.cm.js.refresh(); - - scope.acssSettingsCm.setValue( - currentItem.cssSettings ? currentItem.cssSettings.acssConfig : '' - ); - scope.acssSettingsCm.refresh(); - - scope.clearConsole(); - - // To have the library count updated - updateExternalLibUi(); - - // Set preview only when all modes are updated so that preview doesn't generate on partially - // correct modes and also doesn't happen 3 times. - Promise.all([ - updateHtmlMode(htmlMode), - updateCssMode(cssMode), - updateJsMode(jsMode) - ]).then(() => scope.setPreviewContent(true)); - - toggleLayout(currentItem.layoutMode || prefs.layoutMode); - } - - function closeAllOverlays() { - helpModal.classList.remove('is-modal-visible'); - notificationsModal.classList.remove('is-modal-visible'); - addLibraryModal.classList.remove('is-modal-visible'); - onboardModal.classList.remove('is-modal-visible'); - settingsModal.classList.remove('is-modal-visible'); - cssSettingsModal.classList.remove('is-modal-visible'); - keyboardShortcutsModal.classList.remove('is-modal-visible'); - loginModal.classList.remove('is-modal-visible'); - profileModal.classList.remove('is-modal-visible'); - pledgeModal.classList.remove('is-modal-visible'); - askToImportModal.classList.remove('is-modal-visible'); - toggleSavedItemsPane(false); - document.dispatchEvent(new Event('overlaysClosed')); - } - - /** - * Loaded the code comiler based on the mode selected - */ - function handleModeRequirements(mode) { - const baseTranspilerPath = 'lib/transpilers'; - // Exit if already loaded - var d = deferred(); - if (modes[mode].hasLoaded) { - d.resolve(); - return d.promise; - } - - function setLoadedFlag() { - modes[mode].hasLoaded = true; - d.resolve(); - } - - if (mode === HtmlModes.JADE) { - loadJS(`${baseTranspilerPath}/jade.js`).then(setLoadedFlag); - } else if (mode === HtmlModes.MARKDOWN) { - loadJS(`${baseTranspilerPath}/marked.js`).then(setLoadedFlag); - } else if (mode === CssModes.LESS) { - loadJS(`${baseTranspilerPath}/less.min.js`).then(setLoadedFlag); - } else if (mode === CssModes.SCSS || mode === CssModes.SASS) { - loadJS(`${baseTranspilerPath}/sass.js`).then(function() { - sass = new Sass(`${baseTranspilerPath}/sass.worker.js`); - setLoadedFlag(); - }); - } else if (mode === CssModes.STYLUS) { - loadJS(`${baseTranspilerPath}/stylus.min.js`).then(setLoadedFlag); - } else if (mode === CssModes.ACSS) { - loadJS(`${baseTranspilerPath}/atomizer.browser.js`).then(setLoadedFlag); - } else if (mode === JsModes.COFFEESCRIPT) { - loadJS(`${baseTranspilerPath}/coffee-script.js`).then(setLoadedFlag); - } else if (mode === JsModes.ES6) { - loadJS(`${baseTranspilerPath}/babel.min.js`).then(setLoadedFlag); - } else if (mode === JsModes.TS) { - loadJS(`${baseTranspilerPath}/typescript.js`).then(setLoadedFlag); - } else { - d.resolve(); - } - - return d.promise; - } - - function updateHtmlMode(value) { - htmlMode = value; - htmlModelLabel.textContent = modes[value].label; - // FIXME - use a better selector for the mode selectbox - htmlModelLabel.parentElement.querySelector('select').value = value; - scope.cm.html.setOption('mode', modes[value].cmMode); - CodeMirror.autoLoadMode( - scope.cm.html, - modes[value].cmPath || modes[value].cmMode - ); - return handleModeRequirements(value); - } - function updateCssMode(value) { - cssMode = value; - cssModelLabel.textContent = modes[value].label; - // FIXME - use a better selector for the mode selectbox - cssModelLabel.parentElement.querySelector('select').value = value; - scope.cm.css.setOption('mode', modes[value].cmMode); - scope.cm.css.setOption('readOnly', modes[value].cmDisable); - cssSettingsBtn.classList[modes[value].hasSettings ? 'remove' : 'add']( - 'hide' - ); - CodeMirror.autoLoadMode( - scope.cm.css, - modes[value].cmPath || modes[value].cmMode - ); - return handleModeRequirements(value); - } - function updateJsMode(value) { - jsMode = value; - jsModelLabel.textContent = modes[value].label; - // FIXME - use a better selector for the mode selectbox - jsModelLabel.parentElement.querySelector('select').value = value; - scope.cm.js.setOption('mode', modes[value].cmMode); - CodeMirror.autoLoadMode( - scope.cm.js, - modes[value].cmPath || modes[value].cmMode - ); - return handleModeRequirements(value); - } - - // computeHtml, computeCss & computeJs evaluate the final code according - // to whatever mode is selected and resolve the returned promise with the code. - function computeHtml() { - var d = deferred(); - var code = scope.cm.html.getValue(); - if (htmlMode === HtmlModes.HTML) { - d.resolve(code); - } else if (htmlMode === HtmlModes.MARKDOWN) { - d.resolve(marked ? marked(code) : code); - } else if (htmlMode === HtmlModes.JADE) { - d.resolve(window.jade ? jade.render(code) : code); - } - - return d.promise; - } - function computeCss() { - var d = deferred(); - var code = scope.cm.css.getValue(); - cleanupErrors('css'); - - if (cssMode === CssModes.CSS) { - d.resolve(code); - } else if (cssMode === CssModes.SCSS || cssMode === CssModes.SASS) { - if (sass && code) { - sass.compile( - code, - { indentedSyntax: cssMode === CssModes.SASS }, - function(result) { - // Something was wrong - if (result.line && result.message) { - showErrors('css', [ - { lineNumber: result.line - 1, message: result.message } - ]); - } - d.resolve(result.text); - } - ); - } else { - d.resolve(code); - } - } else if (cssMode === CssModes.LESS) { - less.render(code).then( - function(result) { - d.resolve(result.css); - }, - function(error) { - showErrors('css', [ - { lineNumber: error.line, message: error.message } - ]); - } - ); - } else if (cssMode === CssModes.STYLUS) { - stylus(code).render(function(error, result) { - if (error) { - window.err = error; - // Last line of message is the actual message - var tempArr = error.message.split('\n'); - tempArr.pop(); // This is empty string in the end - showErrors('css', [ - { - lineNumber: +error.message.match(/stylus:(\d+):/)[1] - 298, - message: tempArr.pop() - } - ]); - } - d.resolve(result); - }); - } else if (cssMode === CssModes.ACSS) { - if (!window.atomizer) { - d.resolve(''); - } else { - const html = scope.cm.html.getValue(); - const foundClasses = atomizer.findClassNames(html); - var finalConfig; - try { - finalConfig = atomizer.getConfig( - foundClasses, - JSON.parse(scope.acssSettingsCm.getValue()) - ); - } catch (e) { - finalConfig = atomizer.getConfig(foundClasses, {}); - } - const acss = atomizer.getCss(finalConfig); - scope.cm.css.setValue(acss); - d.resolve(acss); - } - } - - return d.promise; - } - function computeJs(shouldPreventInfiniteLoops) { - var d = deferred(); - var code = scope.cm.js.getValue(); - - cleanupErrors('js'); - if (!code) { - d.resolve(''); - return d.promise; - } - - if (jsMode === JsModes.JS) { - try { - esprima.parse(code, { - tolerant: true - }); - } catch (e) { - showErrors('js', [ - { lineNumber: e.lineNumber - 1, message: e.description } - ]); - } finally { - if (shouldPreventInfiniteLoops !== false) { - code = utils.addInfiniteLoopProtection(code, { - timeout: prefs.infiniteLoopTimeout - }); - } - d.resolve(code); - } - } else if (jsMode === JsModes.COFFEESCRIPT) { - if (!window.CoffeeScript) { - d.resolve(''); - return d.promise; - } - try { - code = CoffeeScript.compile(code, { bare: true }); - } catch (e) { - showErrors('js', [ - { lineNumber: e.location.first_line, message: e.message } - ]); - } finally { - if (shouldPreventInfiniteLoops !== false) { - code = utils.addInfiniteLoopProtection(code, { - timeout: prefs.infiniteLoopTimeout - }); - } - d.resolve(code); - } - } else if (jsMode === JsModes.ES6) { - if (!window.Babel) { - d.resolve(''); - return d.promise; - } - try { - esprima.parse(code, { - tolerant: true, - jsx: true - }); - } catch (e) { - showErrors('js', [ - { lineNumber: e.lineNumber - 1, message: e.description } - ]); - } finally { - code = Babel.transform(code, { - presets: ['latest', 'stage-2', 'react'] - }).code; - if (shouldPreventInfiniteLoops !== false) { - code = utils.addInfiniteLoopProtection(code, { - timeout: prefs.infiniteLoopTimeout - }); - } - d.resolve(code); - } - } else if (jsMode === JsModes.TS) { - try { - if (!window.ts) { - d.resolve(''); - return d.promise; - } - code = ts.transpileModule(code, { - reportDiagnostics: true, - compilerOptions: { - noEmitOnError: true, - diagnostics: true, - module: ts.ModuleKind.ES2015 - } - }); - if (code.diagnostics.length) { - /* eslint-disable no-throw-literal */ - throw { - description: code.diagnostics[0].messageText, - lineNumber: ts.getLineOfLocalPosition( - code.diagnostics[0].file, - code.diagnostics[0].start - ) - }; - } - if (shouldPreventInfiniteLoops !== false) { - code = utils.addInfiniteLoopProtection(code.outputText, { - timeout: prefs.infiniteLoopTimeout - }); - } - d.resolve(code); - } catch (e) { - showErrors('js', [ - { lineNumber: e.lineNumber - 1, message: e.description } - ]); - } - } - - return d.promise; - } - - window.previewException = function(error) { - console.error('Possible infinite loop detected.', error.stack); - window.onMessageFromConsole( - 'Possible infinite loop detected.', - error.stack - ); - }; - window.onunload = function() { - saveCode('code'); - if (scope.detachedWindow) { - scope.detachedWindow.close(); - } - }; - - function cleanupErrors(lang) { - scope.cm[lang].clearGutter('error-gutter'); - } - function showErrors(lang, errors) { - var editor = scope.cm[lang]; - errors.forEach(function(e) { - editor.operation(function() { - var n = document.createElement('div'); - n.setAttribute('data-title', e.message); - n.classList.add('gutter-error-marker'); - editor.setGutterMarker(e.lineNumber, 'error-gutter', n); - }); - }); - } - - /* eslint max-params: ["error", 4] */ - function getCompleteHtml(html, css, js, isForExport) { - var externalJs = externalJsTextarea.value - .split('\n') - .reduce(function(scripts, url) { - return scripts + (url ? '\n' : ''); - }, ''); - var externalCss = externalCssTextarea.value - .split('\n') - .reduce(function(links, url) { - return ( - links + - (url ? '\n' : '') - ); - }, ''); - var contents = - '\n' + - '\n\n' + - '\n' + - externalCss + - '\n' + - '\n' + - '\n' + - '\n' + - html + - '\n' + - externalJs + - '\n'; - - if (!isForExport) { - contents += - ''; - } - - if (jsMode === JsModes.ES6) { - contents += - ''; - } - - if (typeof js === 'string') { - contents += '\n\n'; - - return contents; - } - - function writeFile(name, blob, cb) { - var fileWritten = false; - function getErrorHandler(type) { - return function() { - utils.log(arguments); - trackEvent('fn', 'error', type); - // When there are too many write errors, show a message. - writeFile.errorCount = (writeFile.errorCount || 0) + 1; - if (writeFile.errorCount === 4) { - setTimeout(function() { - alert( - "Oops! Seems like your preview isn't updating. It's recommended to switch to the web app: https://webmakerapp.com/app/.\n\n If you still want to get the extension working, please try the following steps until it fixes:\n - Refresh Web Maker\n - Restart browser\n - Update browser\n - Reinstall Web Maker (don't forget to export all your creations from saved items pane (click the OPEN button) before reinstalling)\n\nIf nothing works, please tweet out to @webmakerApp." - ); - trackEvent('ui', 'writeFileMessageSeen'); - }, 1000); - } - }; - } - - // utils.log('writing file ', name); - window.webkitRequestFileSystem( - window.TEMPORARY, - 1024 * 1024 * 5, - function(fs) { - fs.root.getFile( - name, - { create: true }, - function(fileEntry) { - fileEntry.createWriter(fileWriter => { - function onWriteComplete() { - if (fileWritten) { - // utils.log('file written ', name); - return cb(); - } - fileWritten = true; - // Set the write pointer to starting of file - fileWriter.seek(0); - fileWriter.write(blob); - return false; - } - fileWriter.onwriteend = onWriteComplete; - // Empty the file contents - fileWriter.truncate(0); - // utils.log('truncating file ', name); - }, getErrorHandler('createWriterFail')); - }, - getErrorHandler('getFileFail') - ); - }, - getErrorHandler('webkitRequestFileSystemFail') - ); - } - - function createPreviewFile(html, css, js) { - const shouldInlineJs = - !window.webkitRequestFileSystem || !window.IS_EXTENSION; - var contents = getCompleteHtml(html, css, shouldInlineJs ? js : null); - var blob = new Blob([contents], { type: 'text/plain;charset=UTF-8' }); - var blobjs = new Blob([js], { type: 'text/plain;charset=UTF-8' }); - - // Track if people have written code. - if (!trackEvent.hasTrackedCode && (html || css || js)) { - trackEvent('fn', 'hasCode'); - trackEvent.hasTrackedCode = true; - } - - if (shouldInlineJs) { - if (scope.detachedWindow) { - utils.log('✉️ Sending message to detached window'); - scope.detachedWindow.postMessage({ contents }, '*'); - } else { - frame.src = frame.src; - setTimeout(() => { - frame.contentDocument.open(); - frame.contentDocument.write(contents); - frame.contentDocument.close(); - }, 10); - } - } else { - // we need to store user script in external JS file to prevent inline-script - // CSP from affecting it. - writeFile('script.js', blobjs, function() { - writeFile('preview.html', blob, function() { - var origin = chrome.i18n.getMessage() - ? `chrome-extension://${chrome.i18n.getMessage('@@extension_id')}` - : `${location.origin}`; - var src = `filesystem:${origin}/temporary/preview.html`; - if (scope.detachedWindow) { - scope.detachedWindow.postMessage(src, '*'); - } else { - frame.src = src; - } - }); - }); - } - } - - /** - * Generates the preview from the current code. - * @param {boolean} isForced Should refresh everything without any check or not - * @param {boolean} isManual Is this a manual preview request from user? - */ - scope.setPreviewContent = function(isForced, isManual) { - if (!prefs.autoPreview && !isManual) { - return; - } - - if (!prefs.preserveConsoleLogs) { - scope.clearConsole(); - } - - var currentCode = { - html: scope.cm.html.getValue(), - css: scope.cm.css.getValue(), - js: scope.cm.js.getValue() - }; - utils.log('🔎 setPreviewContent', isForced); - const targetFrame = scope.detachedWindow - ? scope.detachedWindow.document.querySelector('iframe') - : frame; - - // If just CSS was changed (and everything shudn't be empty), - // change the styles inside the iframe. - if ( - !isForced && - currentCode.html === codeInPreview.html && - currentCode.js === codeInPreview.js - ) { - computeCss().then(function(css) { - if (targetFrame.contentDocument.querySelector('#webmakerstyle')) { - targetFrame.contentDocument.querySelector( - '#webmakerstyle' - ).textContent = css; - } - }); - } else { - var htmlPromise = computeHtml(); - var cssPromise = computeCss(); - var jsPromise = computeJs(); - Promise.all([htmlPromise, cssPromise, jsPromise]).then(function(result) { - createPreviewFile(result[0], result[1], result[2]); - }); - } - - codeInPreview.html = currentCode.html; - codeInPreview.css = currentCode.css; - codeInPreview.js = currentCode.js; - }; - - function saveFile() { - var htmlPromise = computeHtml(); - var cssPromise = computeCss(); - var jsPromise = computeJs(false); - Promise.all([htmlPromise, cssPromise, jsPromise]).then(function(result) { - var html = result[0], - css = result[1], - js = result[2]; - - var fileContent = getCompleteHtml(html, css, js, true); - - var d = new Date(); - var fileName = [ - 'web-maker', - d.getFullYear(), - d.getMonth() + 1, - d.getDate(), - d.getHours(), - d.getMinutes(), - d.getSeconds() - ].join('-'); - - if (currentItem.title) { - fileName = currentItem.title; - } - fileName += '.html'; - - var blob = new Blob([fileContent], { type: 'text/html;charset=UTF-8' }); - utils.downloadFile(fileName, blob); - - trackEvent('fn', 'saveFileComplete'); - }); - } - - function initEditor(element, options) { - var cm = CodeMirror(element, { - mode: options.mode, - lineNumbers: true, - lineWrapping: true, - autofocus: options.autofocus || false, - autoCloseBrackets: true, - autoCloseTags: true, - matchBrackets: true, - matchTags: options.matchTags || false, - tabMode: 'indent', - keyMap: 'sublime', - theme: 'monokai', - lint: !!options.lint, - tabSize: 2, - foldGutter: true, - styleActiveLine: true, - gutters: options.gutters || [], - // cursorScrollMargin: '20', has issue with scrolling - profile: options.profile || '', - extraKeys: { - Up: function(editor) { - // Stop up/down keys default behavior when saveditempane is open - if (isSavedItemsPaneOpen) { - return; - } - CodeMirror.commands.goLineUp(editor); - }, - Down: function(editor) { - if (isSavedItemsPaneOpen) { - return; - } - CodeMirror.commands.goLineDown(editor); - }, - 'Shift-Tab': function(editor) { - CodeMirror.commands.indentAuto(editor); - }, - Tab: function(editor) { - if (options.emmet) { - const didEmmetWork = editor.execCommand('emmetExpandAbbreviation'); - if (didEmmetWork === true) { - return; - } - } - const input = $('[data-setting=indentWith]:checked'); - if ( - !editor.somethingSelected() && - (!input || input.value === 'spaces') - ) { - // softtabs adds spaces. This is required because by default tab key will put tab, but we want - // to indent with spaces if `spaces` is preferred mode of indentation. - // `somethingSelected` needs to be checked otherwise, all selected code is replaced with softtab. - CodeMirror.commands.insertSoftTab(editor); - } else { - CodeMirror.commands.defaultTab(editor); - } - }, - Enter: 'emmetInsertLineBreak' - } - }); - cm.on('focus', editor => { - editorWithFocus = editor; - }); - cm.on('change', function onChange(editor, change) { - clearTimeout(updateTimer); - - updateTimer = setTimeout(function() { - // This is done so that multiple simultaneous setValue don't trigger too many preview refreshes - // and in turn too many file writes on a single file (eg. preview.html). - if (change.origin !== 'setValue') { - // Specifically checking for false so that the condition doesn't get true even - // on absent key - possible when the setting key hasn't been fetched yet. - if (prefs.autoPreview !== false) { - scope.setPreviewContent(); - } - - saveBtn.classList.add('is-marked'); - unsavedEditCount += 1; - if ( - unsavedEditCount % unsavedEditWarningCount === 0 && - unsavedEditCount >= unsavedEditWarningCount - ) { - saveBtn.classList.add('animated'); - saveBtn.classList.add('wobble'); - saveBtn.addEventListener('animationend', () => { - saveBtn.classList.remove('animated'); - saveBtn.classList.remove('wobble'); - }); - } - - // Track when people actually are working. - trackEvent.previewCount = (trackEvent.previewCount || 0) + 1; - if (trackEvent.previewCount === 4) { - trackEvent('fn', 'usingPreview'); - } - } - }, updateDelay); - }); - cm.addKeyMap({ - 'Ctrl-Space': 'autocomplete' - }); - if (!options.noAutocomplete) { - cm.on('inputRead', function onChange(editor, input) { - if ( - !prefs.autoComplete || - input.origin !== '+input' || - input.text[0] === ';' || - input.text[0] === ',' || - input.text[0] === ' ' - ) { - return; - } - CodeMirror.commands.autocomplete(cm, null, { completeSingle: false }); - }); - } - return cm; - } - - scope.cm.html = initEditor(htmlCode, { - mode: 'htmlmixed', - profile: 'xhtml', - gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'], - noAutocomplete: true, - matchTags: { bothTags: true }, - emmet: true - }); - scope.cm.css = initEditor(cssCode, { - mode: 'css', - gutters: [ - 'error-gutter', - 'CodeMirror-linenumbers', - 'CodeMirror-foldgutter' - ], - emmet: true - }); - Inlet(scope.cm.css); - scope.cm.js = initEditor(jsCode, { - mode: 'javascript', - gutters: ['error-gutter', 'CodeMirror-linenumbers', 'CodeMirror-foldgutter'] - }); - Inlet(scope.cm.js); - - // Initialize codemirror in console - scope.consoleCm = CodeMirror(consoleLogEl, { - mode: 'javascript', - lineWrapping: true, - theme: 'monokai', - foldGutter: true, - readOnly: true, - gutters: ['CodeMirror-foldgutter'] - }); - - // DEPRECATED - function openSettings() { - scope.toggleModal(settingsModal); - - /* if (chrome.runtime.openOptionsPage) { - // New way to open options pages, if supported (Chrome 42+). - // Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=601997 - // Until this bug fixes, use the - // fallback. - chrome.runtime.openOptionsPage(); - } else { - // Fallback. - chrome.tabs.create({ - url: 'chrome://extensions?options=' + chrome.i18n.getMessage('@@extension_id') - }); - } */ - } - - scope.onModalSettingsLinkClick = function onModalSettingsLinkClick() { - openSettings(); - trackEvent('ui', 'onboardSettingsBtnClick'); - }; - - scope.onShowInTabClicked = function onShowInTabClicked() { - trackEvent('ui', 'onboardShowInTabClick'); - }; - scope.onDontShowInTabClicked = function onDontShowInTabClicked() { - trackEvent('ui', 'onboardDontShowInTabClick'); - }; - - scope.exportItems = function exportItems(e) { - handleDownloadsPermission().then(() => { - fetchItems().then(function(items) { - var d = new Date(); - var fileName = [ - 'web-maker-export', - d.getFullYear(), - d.getMonth() + 1, - d.getDate(), - d.getHours(), - d.getMinutes(), - d.getSeconds() - ].join('-'); - fileName += '.json'; - var blob = new Blob([JSON.stringify(items, false, 2)], { - type: 'application/json;charset=UTF-8' - }); - - utils.downloadFile(fileName, blob); - - trackEvent('ui', 'exportBtnClicked'); - }); - }); - e.preventDefault(); - }; - - function mergeImportedItems(items) { - var existingItemIds = []; - var toMergeItems = {}; - const d = deferred(); - items.forEach(item => { - // We can access `savedItems` here because this gets set when user - // opens the saved creations panel. And import option is available - // inside the saved items panel. - if (savedItems[item.id]) { - // Item already exists - existingItemIds.push(item.id); - } else { - utils.log('merging', item.id); - toMergeItems[item.id] = item; - } - }); - var mergedItemCount = items.length - existingItemIds.length; - if (existingItemIds.length) { - var shouldReplace = confirm( - existingItemIds.length + - ' creations already exist. Do you want to replace them?' - ); - if (shouldReplace) { - utils.log('shouldreplace', shouldReplace); - items.forEach(item => { - toMergeItems[item.id] = item; - }); - mergedItemCount = items.length; - } - } - if (mergedItemCount) { - itemService.saveItems(toMergeItems).then(() => { - d.resolve(); - alertsService.add( - mergedItemCount + ' creations imported successfully.' - ); - trackEvent('fn', 'itemsImported', mergedItemCount); - }); - } else { - d.resolve(); - } - // FIXME: Move from here - toggleSavedItemsPane(false); - - return d.promise; - } - - function onImportFileChange(e) { - var file = e.target.files[0]; - - var reader = new FileReader(); - reader.onload = function(progressEvent) { - var items; - try { - items = JSON.parse(progressEvent.target.result); - utils.log(items); - mergeImportedItems(items); - } catch (exception) { - utils.log(exception); - alert( - 'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.' - ); - } - }; - - reader.readAsText(file, 'utf-8'); - } - - scope.onImportBtnClicked = function exportItems(e) { - var input = document.createElement('input'); - input.type = 'file'; - input.style.display = 'none'; - input.accept = 'accept="application/json'; - document.body.appendChild(input); - input.addEventListener('change', onImportFileChange); - input.click(); - trackEvent('ui', 'importBtnClicked'); - e.preventDefault(); - }; - - function saveScreenshot(dataURI) { - // convert base64 to raw binary data held in a string - // doesn't handle URLEncoded DataURIs - var byteString = atob(dataURI.split(',')[1]); - - // separate out the mime component - var mimeString = dataURI - .split(',')[0] - .split(':')[1] - .split(';')[0]; - - // write the bytes of the string to an ArrayBuffer - var ab = new ArrayBuffer(byteString.length); - var ia = new Uint8Array(ab); - for (var i = 0; i < byteString.length; i++) { - ia[i] = byteString.charCodeAt(i); - } - - // create a blob for writing to a file - var blob = new Blob([ab], { type: mimeString }); - var size = blob.size + 1024 / 2; - - var d = new Date(); - var fileName = [ - 'web-maker-screenshot', - d.getFullYear(), - d.getMonth() + 1, - d.getDate(), - d.getHours(), - d.getMinutes(), - d.getSeconds() - ].join('-'); - fileName += '.png'; - - function onWriteEnd() { - var filePath = - 'filesystem:chrome-extension://' + - chrome.i18n.getMessage('@@extension_id') + - '/temporary/' + - fileName; - - chrome.downloads.download( - { - url: filePath - }, - function() { - // If there was an error, just open the screenshot in a tab. - // This happens in incognito mode where extension cannot access filesystem. - if (chrome.runtime.lastError) { - window.open(filePath); - } - } - ); - } - - function errorHandler(e) { - utils.log(e); - } - - // create a blob for writing to a file - window.webkitRequestFileSystem( - window.TEMPORARY, - size, - fs => { - fs.root.getFile( - fileName, - { create: true }, - fileEntry => { - fileEntry.createWriter(fileWriter => { - fileWriter.onwriteend = onWriteEnd; - fileWriter.write(blob); - }, errorHandler); - }, - errorHandler - ); - }, - errorHandler - ); - } - - function handleDownloadsPermission() { - var d = deferred(); - if (!window.IS_EXTENSION) { - d.resolve(); - return d.promise; - } - chrome.permissions.contains( - { - permissions: ['downloads'] - }, - function(result) { - if (result) { - d.resolve(); - } else { - chrome.permissions.request( - { - permissions: ['downloads'] - }, - function(granted) { - if (granted) { - trackEvent('fn', 'downloadsPermGiven'); - d.resolve(); - } else { - d.reject(); - } - } - ); - } - } - ); - return d.promise; - } - - scope.takeScreenshot = function(e) { - handleDownloadsPermission().then(() => { - // Hide tooltips so that they don't show in the screenshot - var s = document.createElement('style'); - s.textContent = - '[class*="hint"]:after, [class*="hint"]:before { display: none!important; }'; - document.body.appendChild(s); - - function onImgLoad(image) { - var c = document.createElement('canvas'); - var iframeBounds = frame.getBoundingClientRect(); - c.width = iframeBounds.width; - c.height = iframeBounds.height; - var ctx = c.getContext('2d'); - var devicePixelRatio = window.devicePixelRatio || 1; - - ctx.drawImage( - image, - iframeBounds.left * devicePixelRatio, - iframeBounds.top * devicePixelRatio, - iframeBounds.width * devicePixelRatio, - iframeBounds.height * devicePixelRatio, - 0, - 0, - iframeBounds.width, - iframeBounds.height - ); - image.removeEventListener('load', onImgLoad); - saveScreenshot(c.toDataURL()); - } - - setTimeout(() => { - chrome.tabs.captureVisibleTab( - null, - { format: 'png', quality: 100 }, - function(dataURI) { - s.remove(); - if (dataURI) { - var image = new Image(); - image.src = dataURI; - image.addEventListener('load', () => onImgLoad(image, dataURI)); - } - } - ); - }, 50); - - trackEvent('ui', 'takeScreenshotBtnClick'); - }); - - e.preventDefault(); - }; - - // Populate the settings in the settings UI - function updateSettingsInUi() { - $('[data-setting=preserveLastCode]').checked = prefs.preserveLastCode; - $('[data-setting=replaceNewTab]').checked = prefs.replaceNewTab; - $('[data-setting=htmlMode]').value = prefs.htmlMode; - $('[data-setting=cssMode]').value = prefs.cssMode; - $('[data-setting=jsMode]').value = prefs.jsMode; - $('[data-setting=indentSize]').value = prefs.indentSize; - indentationSizeValueEl.textContent = prefs.indentSize; - $( - '[data-setting=indentWith][value=' + (prefs.indentWith || 'spaces') + ']' - ).checked = true; - $('[data-setting=isCodeBlastOn]').checked = prefs.isCodeBlastOn; - $('[data-setting=editorTheme]').value = prefs.editorTheme; - $( - '[data-setting=keymap][value=' + (prefs.keymap || 'sublime') + ']' - ).checked = true; - $('[data-setting=fontSize]').value = prefs.fontSize || 16; - $('[data-setting=refreshOnResize]').checked = prefs.refreshOnResize; - $('[data-setting=autoPreview]').checked = prefs.autoPreview; - $('[data-setting=editorFont]').value = prefs.editorFont; - $('[data-setting=editorCustomFont]').value = prefs.editorCustomFont; - $('[data-setting=autoSave]').checked = prefs.autoSave; - $('[data-setting=autoComplete]').checked = prefs.autoComplete; - $('[data-setting=preserveConsoleLogs]').checked = prefs.preserveConsoleLogs; - $('[data-setting=lightVersion]').checked = prefs.lightVersion; - $('[data-setting=lineWrap]').checked = prefs.lineWrap; - $('[data-setting=infiniteLoopTimeout]').value = - prefs.infiniteLoopTimeout; - } - - /** - * Handles all user triggered preference changes in the UI. - */ - scope.updateSetting = function updateSetting(e) { - // If this was triggered from user interaction, save the setting - if (e) { - var settingName = e.target.dataset.setting; - var obj = {}; - var el = e.target; - utils.log(settingName, el.type === 'checkbox' ? el.checked : el.value); - prefs[settingName] = el.type === 'checkbox' ? el.checked : el.value; - obj[settingName] = prefs[settingName]; - - // We always save locally so that it gets fetched - // faster on future loads. - db.sync.set(obj, function() { - alertsService.add('Setting saved'); - }); - if (window.user) { - window.db.getDb().then(remoteDb => { - remoteDb - .collection('users') - .doc(window.user.uid) - .update({ - [`settings.${settingName}`]: prefs[settingName] - }) - .then(arg => { - utils.log(`Setting "${settingName}" for user`, arg); - }) - .catch(error => utils.log(error)); - }); - } - trackEvent('ui', 'updatePref-' + settingName, prefs[settingName]); - } - - // Show/hide RUN button based on autoPreview setting. - runBtn.classList[prefs.autoPreview ? 'add' : 'remove']('hide'); - - htmlCode.querySelector('.CodeMirror').style.fontSize = prefs.fontSize; - cssCode.querySelector('.CodeMirror').style.fontSize = prefs.fontSize; - jsCode.querySelector('.CodeMirror').style.fontSize = prefs.fontSize; - consoleEl.querySelector('.CodeMirror').style.fontSize = prefs.fontSize; - - // Update indentation count when slider is updated - indentationSizeValueEl.textContent = $('[data-setting=indentSize]').value; - - // Replace correct css file in LINK tags's href - editorThemeLinkTag.href = `lib/codemirror/theme/${prefs.editorTheme}.css`; - fontStyleTag.textContent = fontStyleTemplate.textContent.replace( - /fontname/g, - (prefs.editorFont === 'other' - ? prefs.editorCustomFont - : prefs.editorFont) || 'FiraCode' - ); - customEditorFontInput.classList[ - prefs.editorFont === 'other' ? 'remove' : 'add' - ]('hide'); - - ['html', 'js', 'css'].forEach(type => { - scope.cm[type].setOption( - 'indentWithTabs', - $('[data-setting=indentWith]:checked').value !== 'spaces' - ); - scope.cm[type].setOption( - 'blastCode', - $('[data-setting=isCodeBlastOn]').checked - ? { effect: 2, shake: false } - : false - ); - scope.cm[type].setOption( - 'indentUnit', - +$('[data-setting=indentSize]').value - ); - scope.cm[type].setOption( - 'tabSize', - +$('[data-setting=indentSize]').value - ); - scope.cm[type].setOption('theme', $('[data-setting=editorTheme]').value); - - scope.cm[type].setOption( - 'keyMap', - $('[data-setting=keymap]:checked').value - ); - scope.cm[type].setOption( - 'lineWrapping', - $('[data-setting=lineWrap]').checked - ); - scope.cm[type].refresh(); - }); - scope.consoleCm.setOption('theme', $('[data-setting=editorTheme]').value); - scope.acssSettingsCm.setOption( - 'theme', - $('[data-setting=editorTheme]').value - ); - if (prefs.autoSave) { - if (!autoSaveInterval) { - autoSaveInterval = setInterval(autoSaveLoop, AUTO_SAVE_INTERVAL); - } - } else { - clearInterval(autoSaveInterval); - autoSaveInterval = null; - } - - document.body.classList[prefs.lightVersion ? 'add' : 'remove']( - 'light-version' - ); - }; - - scope.onNewBtnClick = function() { - trackEvent('ui', 'newBtnClick'); - if (unsavedEditCount) { - var shouldDiscard = confirm( - 'You have unsaved changes. Do you still want to create something new?' - ); - if (shouldDiscard) { - createNewItem(); - } - } else { - createNewItem(); - } - }; - scope.onOpenBtnClick = function() { - trackEvent('ui', 'openBtnClick'); - openSavedItemsPane(); - }; - scope.onSaveBtnClick = function() { - trackEvent('ui', 'saveBtnClick', currentItem.id ? 'saved' : 'new'); - saveItem(); - }; - - /** - * Toggles a modal and logs an event. - * @param {Node} modal modal to be toggled - */ - scope.toggleModal = function(modal) { - modal.classList.toggle('is-modal-visible'); - const hasOpened = modal.classList.contains('is-modal-visible'); - document.body.classList[hasOpened ? 'add' : 'remove']('overlay-visible'); - - if (hasOpened) { - /* eslint-disable no-inner-declarations */ - function onTransitionEnd() { - modal.querySelector('.js-modal__close-btn').focus(); - modal - .querySelector('.modal__content') - .removeEventListener('transitionend', onTransitionEnd); - } - /* eslint-enable no-inner-declarations */ - - modal - .querySelector('.modal__content') - .addEventListener('transitionend', onTransitionEnd); - } - }; - scope.onSearchInputChange = function(e) { - const text = e.target.value; - let el; - for (const [itemId, item] of Object.entries(savedItems)) { - el = $(`#js-saved-items-pane [data-item-id=${itemId}]`); - if (item.title.toLowerCase().indexOf(text) === -1) { - el.classList.add('hide'); - } else { - el.classList.remove('hide'); - } - } - trackEvent('ui', 'searchInputType'); - }; - - scope.toggleConsole = function() { - consoleEl.classList.toggle('is-minimized'); - trackEvent('ui', 'consoleToggle'); - }; - // `clearConsole` is on window because it gets called from inside iframe also. - scope.clearConsole = window.clearConsole = function() { - scope.consoleCm.setValue(''); - logCount = 0; - logCountEl.textContent = logCount; - }; - scope.onClearConsoleBtnClick = function() { - scope.clearConsole(); - trackEvent('ui', 'consoleClearBtnClick'); - }; - scope.evalConsoleExpr = function(e) { - // Clear console on CTRL + L - if ((e.which === 76 || e.which === 12) && e.ctrlKey) { - scope.clearConsole(); - trackEvent('ui', 'consoleClearKeyboardShortcut'); - } else if (e.which === 13) { - window.onMessageFromConsole('> ' + e.target.value); - - /* eslint-disable no-underscore-dangle */ - frame.contentWindow._wmEvaluate(e.target.value); - - /* eslint-enable no-underscore-dangle */ - - e.target.value = ''; - trackEvent('fn', 'evalConsoleExpr'); - } - }; - window.onMessageFromConsole = function() { - /* eslint-disable no-param-reassign */ - [...arguments].forEach(function(arg) { - if ( - arg && - arg.indexOf && - arg.indexOf('filesystem:chrome-extension') !== -1 - ) { - arg = arg.replace( - /filesystem:chrome-extension.*\.js:(\d+):*(\d*)/g, - 'script $1:$2' - ); - } - try { - scope.consoleCm.replaceRange( - arg + - ' ' + - ((arg + '').match(/\[object \w+]/) ? JSON.stringify(arg) : '') + - '\n', - { line: Infinity } - ); - } catch (e) { - scope.consoleCm.replaceRange('🌀\n', { line: Infinity }); - } - scope.consoleCm.scrollTo(0, Infinity); - logCount++; - }); - logCountEl.textContent = logCount; - - /* eslint-enable no-param-reassign */ - }; - - /** - * Compiles directives on the given node - * @param {Node} root The element on which compilation is required - */ - function compileNodes(root) { - if (!(root instanceof Node)) { - /* eslint-disable no-param-reassign */ - root = document; - /* eslint-enable no-param-reassign */ - } - // Create a querySelectorAll function bound to the passed `root` Node - const query = selector => [...root.querySelectorAll(selector)]; - - function attachListenerForEvent(eventName) { - const nodes = query(`[d-${eventName}]`); - nodes.forEach(function(el) { - el.addEventListener(eventName, function(e) { - scope[el.getAttribute(`d-${eventName}`)].call(window, e); - }); - }); - } - attachListenerForEvent('click'); - attachListenerForEvent('change'); - attachListenerForEvent('input'); - attachListenerForEvent('keyup'); - - // Compile d-open-modal directive - const modalTriggers = query(`[d-open-modal]`); - modalTriggers.forEach(function(el) { - utils.onButtonClick(el, function() { - scope.toggleModal(window[el.getAttribute('d-open-modal')]); - trackEvent( - el.getAttribute('data-event-category'), - el.getAttribute('data-event-action') - ); - }); - }); - - // Compile d-html directive - const dHtmlNodes = query(`[d-html]`); - dHtmlNodes.forEach(function(el) { - fetch(el.getAttribute('d-html')).then(response => { - // Stop further compilation because of future recursion, by removing attribute. - el.removeAttribute('d-html'); - response.text().then(html => { - requestIdleCallback(() => { - el.innerHTML = html; - // Now compile this newly inserted HTML also. - compileNodes(el); - }); - }); - }); - }); - } - - scope.onRunBtnClick = function() { - scope.setPreviewContent(true, true); - trackEvent('ui', 'runBtnClick'); - }; - - scope.openDetachedPreview = function() { - trackEvent('ui', 'detachPreviewBtnClick'); - - if (scope.detachedWindow) { - scope.detachedWindow.focus(); - return; - } - var iframeBounds = frame.getBoundingClientRect(); - const iframeWidth = iframeBounds.width; - const iframeHeight = iframeBounds.height; - document.body.classList.add('is-detached-mode'); - globalConsoleContainerEl.insertBefore(consoleEl, null); - - scope.detachedWindow = window.open( - './preview.html', - 'Web Maker', - `width=${iframeWidth},height=${iframeHeight},resizable,scrollbars=yes,status=1` - ); - // Trigger initial render in detached window - setTimeout(() => { - scope.setPreviewContent(true); - }, 1500); - function checkWindow() { - if (scope.detachedWindow && scope.detachedWindow.closed) { - clearInterval(intervalID); - document.body.classList.remove('is-detached-mode'); - $('#js-demo-side').insertBefore(consoleEl, null); - scope.detachedWindow = null; - // Update main frame preview to get latest changes (which were not - // getting reflected while detached window was open) - scope.setPreviewContent(true); - } - } - var intervalID = window.setInterval(checkWindow, 500); - }; - - scope.openCssSettingsModal = function() { - scope.toggleModal(cssSettingsModal); - setTimeout(() => { - // Refresh is required because codemirror gets scaled inside modal and loses alignement. - scope.acssSettingsCm.refresh(); - scope.acssSettingsCm.focus(); - }, 500); - trackEvent('ui', 'cssSettingsBtnClick'); - }; - - scope.onModalCloseBtnClick = function(e) { - closeAllOverlays(); - e.preventDefault(); - }; - - scope.openSupportDeveloperModal = function(e) { - closeAllOverlays(); - scope.toggleModal(pledgeModal); - if (e) { - trackEvent('ui', e.target.dataset.eventAction); - } - }; - - scope.updateProfileUi = () => { - if (window.user) { - document.body.classList.add('is-logged-in'); - headerAvatarImg.src = profileAvatarImg.src = - window.user.photoURL || DEFAULT_PROFILE_IMG; - profileUserName.textContent = - window.user.displayName || 'Anonymous Creator'; - } else { - document.body.classList.remove('is-logged-in'); - headerAvatarImg.src = profileAvatarImg.src = ''; - profileUserName.textContent = 'Anonymous Creator'; - } - }; - - scope.login = e => { - const provider = e.target.dataset.authProvider; - trackEvent('ui', 'loginProviderClick', provider); - window.login(provider); - if (e) { - e.preventDefault(); - } - }; - scope.logout = e => { - e.preventDefault(); - if (unsavedEditCount) { - var shouldDiscard = confirm( - 'You have unsaved changes. Do you still want to logout?' - ); - if (!shouldDiscard) { - return; - } - } - trackEvent('fn', 'loggedOut'); - window.logout(); - }; - - /** - * Called from inside ask-to-import-modal - */ - scope.dontAskToImportAnymore = e => { - scope.toggleModal(askToImportModal); - window.localStorage[LocalStorageKeys.ASKED_TO_IMPORT_CREATIONS] = true; - if (e) { - trackEvent('ui', 'dontAskToImportBtnClick'); - } - }; - - /** - * Called from inside ask-to-import-modal - */ - scope.importCreationsAndSettingsIntoApp = () => { - mergeImportedItems(scope.oldSavedItems).then(() => { - trackEvent('fn', 'oldItemsImported'); - scope.dontAskToImportAnymore(); - }); - }; - - function init() { - var config = { - apiKey: 'AIzaSyBl8Dz7ZOE7aP75mipYl2zKdLSRzBU2fFc', - authDomain: 'web-maker-app.firebaseapp.com', - databaseURL: 'https://web-maker-app.firebaseio.com', - projectId: 'web-maker-app', - storageBucket: 'web-maker-app.appspot.com', - messagingSenderId: '560473480645' - }; - firebase.initializeApp(config); - - firebase.auth().onAuthStateChanged(function(user) { - scope.closeAllOverlays(); - if (user) { - utils.log('You are -> ', user); - alertsService.add('You are now logged in!'); - scope.user = window.user = user; - if ( - !window.localStorage[LocalStorageKeys.ASKED_TO_IMPORT_CREATIONS] && - window.oldSavedCreationsCountEl - ) { - fetchItems(false, true).then(items => { - if (!items.length) { - return; - } - scope.oldSavedItems = items; - window.oldSavedCreationsCountEl.textContent = items.length; - scope.toggleModal(askToImportModal); - trackEvent('ui', 'askToImportModalSeen'); - }); - } - window.db.getUser(user.uid).then(customUser => { - if (customUser) { - Object.assign(prefs, user.settings); - updateSettingsInUi(); - scope.updateSetting(); - } - }); - } else { - delete window.user; - // User is signed out. - } - scope.updateProfileUi(); - }); - - var lastCode; - - CodeMirror.modeURL = `lib/codemirror/mode/%N/%N.js`; - - window.db.local.get({ lastAuthProvider: '' }, result => { - if (result.lastAuthProvider) { - document.body.classList.add(`last-login-${result.lastAuthProvider}`); - } - }); - - document.body.style.height = `${window.innerHeight}px`; - - function getToggleLayoutButtonListener(mode) { - return function() { - saveSetting('layoutMode', mode); - trackEvent('ui', 'toggleLayoutClick', mode); - toggleLayout(mode); - return false; - }; - } - layoutBtn1.addEventListener('click', getToggleLayoutButtonListener(1)); - layoutBtn2.addEventListener('click', getToggleLayoutButtonListener(2)); - layoutBtn3.addEventListener('click', getToggleLayoutButtonListener(3)); - layoutBtn4.addEventListener('click', getToggleLayoutButtonListener(4)); - layoutBtn5.addEventListener('click', getToggleLayoutButtonListener(5)); - - notificationsBtn.addEventListener('click', function() { - scope.toggleModal(notificationsModal); - - if ( - notificationsModal.classList.contains('is-modal-visible') && - !hasSeenNotifications - ) { - hasSeenNotifications = true; - notificationsBtn.classList.remove('has-new'); - window.db.setUserLastSeenVersion(version); - } - trackEvent('ui', 'notificationButtonClick', version); - return false; - }); - - codepenBtn.addEventListener('click', function(e) { - if (cssMode === CssModes.ACSS) { - alert("Oops! CodePen doesn't supports Atomic CSS currently."); - e.preventDefault(); - return; - } - var json = { - title: 'A Web Maker experiment', - html: scope.cm.html.getValue(), - css: scope.cm.css.getValue(), - js: scope.cm.js.getValue(), - - /* eslint-disable camelcase */ - html_pre_processor: modes[htmlMode].codepenVal, - css_pre_processor: modes[cssMode].codepenVal, - js_pre_processor: modes[jsMode].codepenVal, - - css_external: externalCssTextarea.value.split('\n').join(';'), - js_external: externalJsTextarea.value.split('\n').join(';') - - /* eslint-enable camelcase */ - }; - if (!currentItem.title.match(/Untitled\s\d\d*-\d/)) { - json.title = currentItem.title; - } - json = JSON.stringify(json); - codepenForm.querySelector('input').value = json; - codepenForm.submit(); - trackEvent('ui', 'openInCodepen'); - e.preventDefault(); - }); - - utils.onButtonClick(saveHtmlBtn, function() { - saveFile(); - trackEvent('ui', 'saveHtmlClick'); - }); - - utils.onButtonClick(savedItemsPaneCloseBtn, toggleSavedItemsPane); - utils.onButtonClick(savedItemsPane, function(e) { - // TODO: warn about unsaved changes in current item - if (e.target.classList.contains('js-saved-item-tile')) { - setTimeout(function() { - openItem(e.target.dataset.itemId); - }, 350); - toggleSavedItemsPane(); - } - if (e.target.classList.contains('js-saved-item-tile__remove-btn')) { - removeItem(e.target.parentElement.parentElement.dataset.itemId); - } else if (e.target.classList.contains('js-saved-item-tile__fork-btn')) { - toggleSavedItemsPane(); - setTimeout(function() { - forkItem( - savedItems[e.target.parentElement.parentElement.dataset.itemId] - ); - }, 350); - } - }); - - titleInput.addEventListener('blur', function() { - if (currentItem.id) { - saveItem(); - trackEvent('ui', 'titleChanged'); - } - }); - - // Attach listeners on mode change menu items - $all('.js-mode-select').forEach(selectBox => { - selectBox.addEventListener('change', function(e) { - var mode = e.target.value; - var type = e.target.dataset.type; - var currentMode = - type === 'html' ? htmlMode : type === 'css' ? cssMode : jsMode; - if (currentMode !== mode) { - if (type === 'html') { - updateHtmlMode(mode).then(() => scope.setPreviewContent(true)); - } else if (type === 'js') { - updateJsMode(mode).then(() => scope.setPreviewContent(true)); - } else if (type === 'css') { - updateCssMode(mode).then(() => scope.setPreviewContent(true)); - } - trackEvent('ui', 'updateCodeMode', mode); - } - }); - }); - - // Collapse btn event listeners - var collapseBtns = $all('.js-code-collapse-btn'); - collapseBtns.forEach(function(btn) { - btn.addEventListener('click', function(e) { - var codeWrapParent = - e.currentTarget.parentElement.parentElement.parentElement; - toggleCodeWrapCollapse(codeWrapParent); - trackEvent('ui', 'paneCollapseBtnClick', codeWrapParent.dataset.type); - return false; - }); - }); - - // Update code wrap collapse states whenever any of them transitions due to any - // reason. - [htmlCode, cssCode, jsCode].forEach(function(el) { - el.addEventListener('transitionend', function() { - updateCodeWrapCollapseStates(); - }); - }); - - // Editor keyboard shortucuts - window.addEventListener('keydown', function(event) { - // TODO: refactor common listener code - // Ctrl/⌘ + S - if ((event.ctrlKey || event.metaKey) && event.keyCode === 83) { - event.preventDefault(); - saveItem(); - trackEvent('ui', 'saveItemKeyboardShortcut'); - } - // Ctrl/⌘ + Shift + 5 - if ( - (event.ctrlKey || event.metaKey) && - event.shiftKey && - event.keyCode === 53 - ) { - event.preventDefault(); - scope.setPreviewContent(true, true); - trackEvent('ui', 'previewKeyboardShortcut'); - } else if ((event.ctrlKey || event.metaKey) && event.keyCode === 79) { - // Ctrl/⌘ + O - event.preventDefault(); - openSavedItemsPane(); - trackEvent('ui', 'openCreationKeyboardShortcut'); - } else if ( - (event.ctrlKey || event.metaKey) && - event.shiftKey && - event.keyCode === 191 - ) { - // Ctrl/⌘ + Shift + ? - event.preventDefault(); - scope.toggleModal(keyboardShortcutsModal); - trackEvent('ui', 'showKeyboardShortcutsShortcut'); - } else if (event.keyCode === 27) { - closeAllOverlays(); - } - }); - - savedItemsPane.addEventListener('keydown', function(event) { - if (!isSavedItemsPaneOpen) { - return; - } - - const isCtrlOrMetaPressed = event.ctrlKey || event.metaKey; - const isForkKeyPressed = isCtrlOrMetaPressed && event.keyCode === 70; - const isDownKeyPressed = event.keyCode === 40; - const isUpKeyPressed = event.keyCode === 38; - const isEnterKeyPressed = event.keyCode === 13; - - const selectedItemElement = $('.js-saved-item-tile.selected'); - const havePaneItems = $all('.js-saved-item-tile').length !== 0; - - if ((isDownKeyPressed || isUpKeyPressed) && havePaneItems) { - const method = isDownKeyPressed ? 'nextUntil' : 'previousUntil'; - - if (selectedItemElement) { - selectedItemElement.classList.remove('selected'); - selectedItemElement[method]( - '.js-saved-item-tile:not(.hide)' - ).classList.add('selected'); - } else { - $('.js-saved-item-tile:not(.hide)').classList.add('selected'); - } - $('.js-saved-item-tile.selected').scrollIntoView(false); - } - - if (isEnterKeyPressed && selectedItemElement) { - setTimeout(function() { - openItem(selectedItemElement.dataset.itemId); - }, 350); - toggleSavedItemsPane(); - } - - // Fork shortcut inside saved creations panel with Ctrl/⌘ + F - if (isForkKeyPressed) { - event.preventDefault(); - setTimeout(function() { - forkItem(savedItems[selectedItemElement.dataset.itemId]); - }, 350); - toggleSavedItemsPane(); - trackEvent('ui', 'forkKeyboardShortcut'); - } - }); - - window.addEventListener('click', function(e) { - if (typeof e.target.className !== 'string') { - return; - } - if ( - e.target.classList.contains('modal-overlay') || - e.target.classList.contains('modal') - ) { - closeAllOverlays(); - } - }); - window.addEventListener('dblclick', function(e) { - var target = e.target; - if (target.classList.contains('js-console__header')) { - scope.toggleConsole(); - trackEvent('ui', 'consoleToggleDblClick'); - } - if (target.classList.contains('js-code-wrap__header')) { - var codeWrapParent = target.parentElement; - toggleCodeWrapCollapse(codeWrapParent); - trackEvent('ui', 'paneHeaderDblClick', codeWrapParent.dataset.type); - } - }); - - // Initialize add library select box - var libOptions = window.jsLibs.reduce( - (html, lib) => - html + - ``, - '' - ); - addLibrarySelect.children[1].innerHTML = libOptions; - libOptions = window.cssLibs.reduce( - (html, lib) => - html + - ``, - '' - ); - addLibrarySelect.children[2].innerHTML = libOptions; - addLibrarySelect.addEventListener('change', function onSelectChange(e) { - var target = e.target; - if (!target.value) { - return; - } - $('#js-external-' + target.selectedOptions[0].dataset.type).value += - '\n' + target.value; - trackEvent('ui', 'addLibrarySelect', target.selectedOptions[0].label); - onExternalLibChange(); - // Reset the select to the default value - target.value = ''; - }); - externalJsTextarea.addEventListener('blur', onExternalLibChange); - externalCssTextarea.addEventListener('blur', onExternalLibChange); - - new TextareaAutoComplete(externalJsTextarea, { - filter: obj => obj.latest.match(/\.js$/) - }); - new TextareaAutoComplete(externalCssTextarea, { - filter: obj => obj.latest.match(/\.css$/) - }); - new TextareaAutoComplete(externalLibrarySearchInput, { - selectedCallback: value => { - const textarea = value.match(/\.js$/) - ? externalJsTextarea - : externalCssTextarea; - textarea.value = `${textarea.value}\n${value}`; - externalLibrarySearchInput.value = ''; - } - }); - - // Console header drag resize logic - var consoleHeaderDragStartY; - var consoleInitialHeight; - function onConsoleHeaderDrag(e) { - consoleEl.style.height = - consoleInitialHeight + consoleHeaderDragStartY - e.pageY + 'px'; - } - $('.js-console__header').addEventListener('mousedown', e => { - consoleHeaderDragStartY = e.pageY; - consoleInitialHeight = consoleEl.getBoundingClientRect().height; - $('#demo-frame').classList.add('pointer-none'); - window.addEventListener('mousemove', onConsoleHeaderDrag); - }); - $('.js-console__header').addEventListener('mouseup', () => { - window.removeEventListener('mousemove', onConsoleHeaderDrag); - $('#demo-frame').classList.remove('pointer-none'); - }); - - db.local.get( - { - layoutMode: 1, - code: '' - }, - function localGetCallback(result) { - toggleLayout(result.layoutMode); - prefs.layoutMode = result.layoutMode; - if (result.code) { - lastCode = result.code; - } - } - ); - - // Get synced `preserveLastCode` setting to get back last code (or not). - db.getSettings(defaultSettings).then(result => { - if (result.preserveLastCode && lastCode) { - unsavedEditCount = 0; - // For web app environment we don't fetch item from localStorage, - // because the item isn't stored in the localStorage. - if (lastCode.id && window.IS_EXTENSION) { - db.local.get(lastCode.id, function(itemResult) { - if (itemResult[lastCode.id]) { - utils.log('Load item ', lastCode.id); - currentItem = itemResult[lastCode.id]; - refreshEditor(); - } - }); - } else { - utils.log('Load last unsaved item', lastCode); - currentItem = lastCode; - refreshEditor(); - } - } else { - createNewItem(); - } - Object.assign(prefs, result); - - updateSettingsInUi(); - scope.updateSetting(); - }); - - // Check for new version notifications - db.getUserLastSeenVersion().then(lastSeenVersion => { - // Check if new user - if (!lastSeenVersion) { - onboardModal.classList.add('is-modal-visible'); - if (document.cookie.indexOf('onboarded') === -1) { - trackEvent('ui', 'onboardModalSeen', version); - document.cookie = 'onboarded=1'; - } - window.db.setUserLastSeenVersion(version); - // set some initial preferences on closing the onboard modal - // Old onboarding. - // utils.once(document, 'overlaysClosed', function() {}); - } - // If its an upgrade - if ( - lastSeenVersion && - utils.semverCompare(lastSeenVersion, version) === -1 && - !window.localStorage.pledgeModalSeen - ) { - scope.openSupportDeveloperModal(); - window.localStorage.pledgeModalSeen = true; - } - - if ( - !lastSeenVersion || - utils.semverCompare(lastSeenVersion, version) === -1 - ) { - notificationsBtn.classList.add('has-new'); - hasSeenNotifications = false; - } - }); - - scope.acssSettingsCm = CodeMirror.fromTextArea(acssSettingsTextarea, { - mode: 'application/ld+json' - }); - scope.acssSettingsCm.on('blur', () => { - scope.setPreviewContent(true); - }); - - var options = ''; - [ - '3024-day', - '3024-night', - 'abcdef', - 'ambiance', - 'base2tone-meadow-dark', - 'base16-dark', - 'base16-light', - 'bespin', - 'blackboard', - 'cobalt', - 'colorforth', - 'dracula', - 'duotone-dark', - 'duotone-light', - 'eclipse', - 'elegant', - 'erlang-dark', - 'hopscotch', - 'icecoder', - 'isotope', - 'lesser-dark', - 'liquibyte', - 'material', - 'mbo', - 'mdn-like', - 'midnight', - 'monokai', - 'neat', - 'neo', - 'night', - 'panda-syntax', - 'paraiso-dark', - 'paraiso-light', - 'pastel-on-dark', - 'railscasts', - 'rubyblue', - 'seti', - 'solarized dark', - 'solarized light', - 'the-matrix', - 'tomorrow-night-bright', - 'tomorrow-night-eighties', - 'ttcn', - 'twilight', - 'vibrant-ink', - 'xq-dark', - 'xq-light', - 'yeti', - 'zenburn' - ].forEach(theme => { - options += ''; - }); - document.querySelector('[data-setting="editorTheme"]').innerHTML = options; - - requestAnimationFrame(compileNodes); - - window.addEventListener('focusin', e => { - if (document.body.classList.contains('overlay-visible')) { - const modal = $('.is-modal-visible'); - if (!modal) { - return; - } - if (!modal.contains(e.target)) { - e.preventDefault(); - modal.querySelector('.js-modal__close-btn').focus(); - } - } - }); - } - - // Set few stuff on a 'scope' object so that they can be referenced dynamically. - scope.closeAllOverlays = closeAllOverlays; - - init(); -})(window.alertsService, window.itemService); diff --git a/src/style.css b/src/style.css index 46b7299..ceafc1c 100644 --- a/src/style.css +++ b/src/style.css @@ -4,6 +4,7 @@ --code-font-size: 16px; --color-button: #0074d9; } + body { margin: 0; padding: 0; @@ -12,21 +13,22 @@ body { color: rgba(255, 255, 255, 0.9); min-height: 100vh; font-size: 87.5%; - /* speocifically for mobile when keyboard is open */ position: relative; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; } + h1 { margin-top: 0; } + a { text-decoration: none; color: #d61237; cursor: pointer; } + p { line-height: 1.65; } @@ -34,61 +36,95 @@ p { .hide { display: none !important; } + .flex { display: flex; } + .flex-grow { flex-grow: 1; } + .flex-v-center { align-items: center; } + .flex-h-center { justify-content: center; } + .flex-h-end { justify-content: flex-end; } + .fr { float: right; } + .relative { position: relative; } + .tac { text-align: center; } + .tar { text-align: right; } + .va-m { vertical-align: middle; } + .full-width { width: 100%; } + .opacity--30 { opacity: 0.3; } + .opacity--70 { opacity: 0.7; } + .pointer-none { pointer-events: none; } + .ml-1 { margin-left: 1rem; } + .ml-2 { margin-left: 2rem; } + .mb-1 { margin-bottom: 1rem; } + .mb-2 { margin-bottom: 2rem; } +.mt-1 { + margin-top: 1rem; +} + +.mt-2 { + margin-top: 2rem; +} + +.mb-0 { + margin-bottom: 0; +} + +.mt-0 { + margin-top: 0; +} + @media screen and (max-width: 500px) { .block--mobile { display: block; @@ -100,24 +136,35 @@ p { display: none !important; } } + +@media screen and (min-width: 501px) { + .show-on-mobile { + display: none; + } +} + hr { background: 0; border: 0; border-bottom: 1px solid #dedede; } + label { cursor: pointer; } + [class*='hint--']:after { text-transform: none; font-weight: normal; letter-spacing: 0.5px; font-size: 14px; } + .line { display: block; margin-bottom: 1em; } + .caret { display: inline-block; width: 0; @@ -128,9 +175,11 @@ label { top: 5px; margin-left: 8px; } + a > svg { fill: rgba(255, 255, 255, 0.2); } + select, input[type='text'], input[type='number'], @@ -138,6 +187,7 @@ textarea { padding: 3px 5px; font-size: inherit; } + .hidden-select { opacity: 0; position: absolute; @@ -146,6 +196,7 @@ textarea { top: 0; bottom: 0; } + .btn { display: inline-block; color: var(--color-button); @@ -156,31 +207,38 @@ textarea { cursor: pointer; letter-spacing: 0.2px; line-height: 1; + white-space: nowrap; transition: box-shadow 0.2s ease; } + .btn--primary { background: var(--color-button) linear-gradient(180deg, rgba(0, 0, 0, 0.5) 0px, transparent); color: white; } + .btn--big { padding: 15px 30px; border-radius: 3px; } + .btn-icon { display: inline-flex; align-items: center; } + .btn:hover { text-decoration: none; box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.25); } + .btn:focus { outline-width: 4px; outline-color: #b76b29; outline-style: solid; outline-offset: 1px; } + .btn-icon > svg { width: 20px; height: 20px; @@ -188,28 +246,36 @@ textarea { vertical-align: middle; margin-right: 8px; } + .btn--big > svg { width: 25px; height: 25px; margin-right: 12px; } + .btn-loader { display: none; } + .is-loading > svg { display: none; } + .is-loading .btn-loader { display: block; } + .star:after { content: '★'; - color: #eee333; + color: currentColor; } + /* used to show keyboard specific content when something is keyboard focused */ + .show-when-selected { display: none; } + .selected .show-when-selected { display: inline-block; } @@ -226,63 +292,83 @@ textarea { transition: 0.1s ease 0.2s; will-change: filter; } + body:not(.light-version).overlay-visible .main-container { transition-duration: 0.5s; transition-delay: 0.4s; filter: blur(3px); } + .content-wrap { + /* HACK: */ + height: 1px; /* HACK: 70px is approx header+footer. This is required to because on FF the content-wrap goes beyond the flex parent otherwise. */ max-height: calc(100% - 70px); } + .code-side, .demo-side { flex-basis: inherit; position: relative; width: 50%; } + .layout-3 .content-wrap { flex-direction: row-reverse; } + .code-side { display: flex; flex-direction: column; } + .layout-2 .content-wrap { flex-direction: column; } + .layout-2 .code-side { flex-direction: row; width: auto; } + .layout-2 .demo-side { width: auto; } + /* All vertical layout */ + .layout-5 .code-side { flex-direction: row; width: auto; } + .layout-5 .code-wrap { height: auto; } + /* Fullscreen layout */ + .layout-4 .code-side { display: none; } + .layout-4 .code-side + .gutter { display: none; } + .layout-4 .demo-side { width: 100% !important; } + .is-detached-mode .demo-side { display: none; } + .is-detached-mode .code-side { width: 100% !important; } + .is-detached-mode.layout-2 .code-side { height: auto !important; } @@ -298,17 +384,21 @@ body:not(.light-version).overlay-visible .main-container { transition: height 0.3s ease, width 0.3s ease; will-change: height; } + .layout-2 .code-wrap.is-minimized, .layout-5 .code-wrap.is-minimized { flex-direction: row; } + .is-dragging .code-wrap { transition: none; } + .layout-2 .code-wrap { height: auto; width: 33%; } + .code-wrap__header { display: flex; flex-shrink: 0; @@ -321,47 +411,56 @@ body:not(.light-version).overlay-visible .main-container { font-weight: bold; user-select: none; } + .code-wrap__header-label { /*transform: translate(0px) scale(1.2);*/ display: inline-block; font-size: 1.1em; /*transform-origin: left center;*/ } + .layout-2 .code-side .is-minimized .code-wrap__header, .layout-5 .code-side .is-minimized .code-wrap__header { writing-mode: vertical-lr; padding: 10px 5px; } + .code-wrap__header .caret { transition: 0.2s ease; } + .is-minimized .code-wrap__header .caret { opacity: 0; } + .code-wrap__header-btn { display: inline-block; vertical-align: top; margin-left: 8px; } + .code-wrap__header-btn, .code-wrap__header-btn > svg { width: 18px; height: 18px; } + .code-wrap__header-right-options { position: relative; - /* bring over mode select boxes */ z-index: 1; } + .code-wrap__collapse-btn:before { /* maximize icon */ content: url('data:image/svg+xml;utf8,'); } + .is-maximized .code-wrap__collapse-btn:before { /* minimize icon */ content: url('data:image/svg+xml;utf8,'); } + @keyframes pop-in { from { transform: scale(0.9); @@ -374,64 +473,84 @@ body:not(.light-version).overlay-visible .main-container { } /* Codemirror */ -.Codemirror { + +.CodeMirror { width: 100%; - height: calc(100% - 25px); /* 25px for header */ + height: calc(100% - 25px); + /* 25px for header */ font-size: var(--code-font-size); } + /* TODO: Check why? */ + .layout-2 .is-minimized .Codemirror, .layout-5 .is-minimized .Codemirror { height: calc(100%); } -.Codemirror pre { + +.CodeMirror pre { font-variant-ligatures: contextual; } + .cm-s-monokai .CodeMirror-linenumber { color: rgba(255, 255, 255, 0.2); } + .cm-s-monokai.CodeMirror, .cm-s-monokai .CodeMirror-gutters { background: var(--color-bg); } + .cm-s-monokai .CodeMirror-guttermarker-subtle { opacity: 0.4; } + .cm-s-monokai .CodeMirror-activeline-background, .cm-s-monokai .CodeMirror-activeline-gutter { background: rgba(0, 0, 0, 0.1) !important; } + .CodeMirror-guttermarker-subtle { /*visibility: hidden !important;*/ } + .CodeMirror-gutter-wrapper:hover .CodeMirror-guttermarker-subtle { /*visibility: visible;*/ } + .CodeMirror-hints { font-size: var(--code-font-size); border: 0; background: #1e1e2c; } + .CodeMirror-hint { color: #bbb; padding: 2px 4px; } + li.CodeMirror-hint-active { background: #5b429d; /*color: white;*/ } + #demo-frame { border: 0; width: 100%; - height: calc(100% - 29px); /* minus minimized console height */ + height: calc(100% - 29px); + /* minus minimized console height */ position: absolute; z-index: 1; background: white; } + /* When demo frame is in detached window */ + body > #demo-frame { - height: 100%; /* Because console is no more here */ + height: 100%; + /* Because console is no more here */ } + .main-header, .footer { padding: 5px 10px; @@ -440,22 +559,26 @@ body > #demo-frame { border-top: 1px solid rgba(255, 255, 255, 0.14); /*line-height: 20px;*/ } + .footer { /* Because .console is 6 */ z-index: 6; } + .main-header { display: flex; flex-wrap: nowrap; border: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.14); } + .main-header__btn-wrap > a { font-size: 0.8em; font-weight: bold; line-height: 20px; height: 20px; letter-spacing: 0.6px; + white-space: nowrap; color: #9297b3; border-radius: 3px; margin-left: 10px; @@ -470,24 +593,30 @@ body > #demo-frame { box-shadow: 0 -1px 0px 0 rgba(255, 255, 255, 0.15); text-transform: uppercase; } + .main-header__btn-wrap > a > svg { fill: #9297b3; margin-right: 4px; } + .main-header__btn-wrap > a.is-marked > svg { fill: crimson; } + .main-header__btn-wrap > a:hover { border-color: rgba(146, 151, 179, 0.5); } + .main-header__btn-wrap > a.is-loading { pointer-events: none; opacity: 0.4; } + .main-header__avatar-img, .profile-modal__avatar-img { border-radius: 50%; } + .logo { display: inline-block; height: 25px; @@ -502,64 +631,79 @@ body > #demo-frame { opacity: 0.3; will-change: opacity, filter; } + .footer:hover .logo { -webkit-filter: grayscale(0); filter: grayscale(0); opacity: 1; } + .footer__right { font-size: 0; line-height: 0; } + .footer__separator { display: inline-block; height: 24px; margin: 0 10px 0 20px; border-left: 1px solid rgba(255, 255, 255, 0.2); } + .mode-btn { margin-left: 10px; display: inline-block; } + .footer__link:first-of-type { margin-left: 5px; } + .footer__link { display: inline-block; margin-right: 5px; position: relative; top: 2px; } + .footer a > svg { transition: 0.3s ease; fill: rgba(255, 255, 255, 0.2); } + .footer a:hover svg { fill: rgba(255, 255, 255, 0.45); } + .mode-btn svg { width: 24px; height: 24px; } + .mode-btn.selected svg { fill: rgba(255, 255, 255, 0.45); } + .gutter { background: rgba(255, 255, 255, 0.05); flex-shrink: 0; } + .gutter-horizontal { cursor: ew-resize; } + .gutter-vertical { cursor: ns-resize; } + .item-title-input { background: none; border: 0; color: rgba(255, 255, 255, 0.6); flex: 1; } + .search-input { background: rgba(255, 255, 255, 0.1); padding: 10px 20px; @@ -569,6 +713,7 @@ body > #demo-frame { color: white; border-radius: 4px; } + .modal { position: fixed; top: 0; @@ -582,22 +727,39 @@ body > #demo-frame { justify-content: center; z-index: 2000; visibility: hidden; + /* background-color: rgba(102, 51, 153, 0.7); */ + /* background-color: rgba(0, 0, 0, 0.7); */ + /* To prevent scroll repaint inside modal */ + will-change: transform; } + +@keyframes anim-modal-overlay { + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} + .modal__close-btn { position: absolute; right: 10px; top: 10px; + text-transform: uppercase; + font-weight: 700; opacity: 0.8; transition: 0.25s ease; } + .modal__close-btn > svg { fill: black; width: 30px; height: 30px; } + .modal__close-btn:hover { opacity: 0.7; } + .modal__content { background: #fdfdfd; color: #444; @@ -612,23 +774,34 @@ body > #demo-frame { box-sizing: border-box; overflow-y: auto; pointer-events: auto; - transition-property: transform, opacity; - transition-duration: 0.19s; transform: translateY(50px) scale(0.95); + animation: anim-modal 300ms ease forwards; + animation-delay: 150ms; } + +@keyframes anim-modal { + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} + @media screen and (max-width: 900px) { .modal__content { max-width: 95vw; } } + .is-modal-visible { visibility: visible; } + .is-modal-visible .modal__content { - transition-duration: 0.3s; - transform: translateY(0px) scale(1); - opacity: 1; + /* transition-duration: 0.3s; */ + /* transform: translateY(0px) scale(1); */ + /* opacity: 1; */ } + .modal-overlay { position: fixed; width: 100%; @@ -642,20 +815,25 @@ body > #demo-frame { background: rgba(0, 0, 0, 0.6); transition: opacity 0.3s; } + /* Make settings modal smaller */ + @media screen and (min-width: 600px) { .modal--settings { /* width: 600px; */ /* margin-lef.t: -300px; */ } } + .pledge-modal .modal__content, .ask-to-import-modal .modal__content { max-width: 800px; } + .login-modal .modal__content { overflow-y: initial; } + .saved-items-pane { position: fixed; right: 0; @@ -670,15 +848,19 @@ body > #demo-frame { will-change: transform; transform: translateX(100%); } + .saved-items-pane.is-open { transition-duration: 0.4s; transform: translateX(0); } + +.overlay-visible .modal-overlay, .is-modal-visible ~ .modal-overlay, .saved-items-pane.is-open ~ .modal-overlay { opacity: 1; visibility: visible; } + .saved-items-pane__close-btn { position: absolute; left: -18px; @@ -695,12 +877,14 @@ body > #demo-frame { transition: 0.3s ease; transition-delay: 0; } + .saved-items-pane.is-open .saved-items-pane__close-btn { opacity: 1; transition-delay: 0.4s; transform: scale(1); visibility: visible; } + .saved-item-tile { padding: 20px; background-color: rgba(255, 255, 255, 0.06); @@ -716,45 +900,59 @@ body > #demo-frame { box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2); animation: slide-left 0.35s ease forwards; } + .saved-item-tile:nth-child(1) { animation-delay: 0.2s; } + .saved-item-tile:nth-child(2) { animation-delay: 0.25s; } + .saved-item-tile:nth-child(3) { animation-delay: 0.3s; } + .saved-item-tile:nth-child(4) { animation-delay: 0.35s; } + .saved-item-tile:nth-child(5) { animation-delay: 0.4s; } + .saved-item-tile:nth-child(6) { animation-delay: 0.45s; } + .saved-item-tile:nth-child(7) { animation-delay: 0.5s; } + .saved-item-tile:nth-child(8) { animation-delay: 0.55s; } + .saved-item-tile:nth-child(9) { animation-delay: 0.6s; } + .saved-item-tile:nth-child(10) { animation-delay: 0.65s; } + .saved-item-tile:nth-child(11) { animation-delay: 0.7s; } + .saved-item-tile:nth-child(12) { animation-delay: 0.75s; } + .saved-item-tile:nth-child(n + 12) { animation-delay: 0.8s; } + @keyframes slide-left { from { opacity: 0; @@ -765,10 +963,12 @@ body > #demo-frame { transform: translateX(0px); } } + .saved-item-tile:hover, .saved-item-tile.selected { background: rgba(255, 255, 255, 0.1); } + .saved-item-tile__btns { position: absolute; top: 6px; @@ -778,11 +978,13 @@ body > #demo-frame { pointer-events: none; transition: 0.25s ease; } + .saved-item-tile.selected .saved-item-tile__btns, .saved-item-tile:hover .saved-item-tile__btns { opacity: 1; pointer-events: auto; } + .saved-item-tile__btn { padding: 7px 10px; color: rgba(255, 255, 255, 0.3); @@ -791,27 +993,33 @@ body > #demo-frame { background: rgba(255, 255, 255, 0.05); text-transform: uppercase; } + .saved-item-tile__btn:hover { background: rgba(255, 255, 255, 0.8); color: #555; } + .saved-item-tile__title { pointer-events: none; font-size: 1.4em; margin: 0 0 1em 0; opacity: 0.8; } + .saved-item-tile__meta { pointer-events: none; opacity: 0.3; } + .saved-items-pane__container { overflow-y: scroll; max-height: calc(100vh - 90px); } + .notifications-btn { position: relative; } + @keyframes shake { 2%, 22% { @@ -831,10 +1039,12 @@ body > #demo-frame { transform: translate3d(4px, 0, 0); } } + .notifications-btn.has-new { animation: shake 7s linear infinite; transform-origin: 50% 10px; } + .notifications-btn__dot { position: absolute; right: 1; @@ -845,9 +1055,11 @@ body > #demo-frame { height: 12px; display: none; } + .has-new .notifications-btn__dot { display: block; } + .notification { border: 1px solid #f1f1f1; border-radius: 5px; @@ -855,12 +1067,15 @@ body > #demo-frame { background: #f8f6f9; position: relative; } + .notification:not(:last-child) { margin-bottom: 10px; } + .notification li:not(:last-child) { margin-bottom: 10px; } + .notification__version { background: #ff8c00; color: white; @@ -870,12 +1085,14 @@ body > #demo-frame { top: 2px; left: 2px; } + .loader, .loader:after { border-radius: 50%; width: 3em; height: 3em; } + .loader { font-size: 5px; position: relative; @@ -887,6 +1104,7 @@ body > #demo-frame { transform: translateZ(0); animation: load8 1.1s infinite linear; } + @keyframes load8 { 0% { transform: rotate(0deg); @@ -900,6 +1118,7 @@ body > #demo-frame { position: relative; cursor: pointer; } + .dropdown__menu { position: absolute; top: 100%; @@ -919,17 +1138,20 @@ body > #demo-frame { z-index: 5; background: white; } + .dropdown__menu > li > a { display: block; padding: 6px 15px; color: #333; cursor: pointer; } + .dropdown__menu > li.selected > a, .dropdown__menu > li > a:hover { background: var(--color-sidebar); color: white; } + .dropdown__menu > li:not(:last-child) { border-bottom: 1px solid rgba(0, 0, 0, 0.05); } @@ -940,6 +1162,7 @@ body > #demo-frame { visibility: visible; transform: translateY(0); } + .alerts-container { position: fixed; will-change: transform; @@ -957,6 +1180,7 @@ body > #demo-frame { transform: translateX(-50%) translateY(-100%); transition: 0.3s ease; } + .alerts-container.is-active { transform: translateX(-50%) translateY(0); } @@ -964,6 +1188,7 @@ body > #demo-frame { .error-gutter { width: 8px; } + .gutter-error-marker { width: 8px; height: 20px; @@ -973,6 +1198,7 @@ body > #demo-frame { top: 0; left: 1px; } + .gutter-error-marker:after { content: attr(data-title); background: red; @@ -983,16 +1209,19 @@ body > #demo-frame { position: absolute; top: 14px; left: 0px; - width: 300px; /* ideally shud be equal to pane width */ + width: 300px; + /* ideally shud be equal to pane width */ transform: translateX(-10px); will-change: transform; transition: 0.2s ease; } + .gutter-error-marker:hover:after { opacity: 1; visibility: visible; transform: translateX(0); } + .count-label { color: rgba(0, 0, 0, 0.8); background: rgba(255, 255, 255, 0.53); @@ -1000,6 +1229,7 @@ body > #demo-frame { padding: 1px 6px; font-weight: bold; } + .onboard-step { background: #f7f2f1; border: 1px solid #ecdede; @@ -1009,16 +1239,8 @@ body > #demo-frame { border-radius: 10px; box-shadow: 0 16px 22px rgba(0, 0, 0, 0.1); flex: 1; - opacity: 0; - animation: onboard-step-show 0.6s ease forwards; - animation-delay: 0.1s; -} -.onboard-step:nth-child(2) { - animation-delay: 0.2s; -} -.onboard-step:nth-child(3) { - animation-delay: 0.4s; } + .onboard-step__icon { fill: #fff2ed; stroke-width: 0.5px; @@ -1027,17 +1249,6 @@ body > #demo-frame { height: 80px; } -@keyframes onboard-step-show { - from { - transform: translateY(10px); - opacity: 0; - } - to { - transform: translateY(0); - opacity: 1; - } -} - .autocomplete-dropdown { border-top-left-radius: 0; border-top-right-radius: 0; @@ -1047,65 +1258,74 @@ body > #demo-frame { border: 1px solid rgba(0, 0, 0, 0.5); z-index: 2001; } + .autocomplete__loader { position: absolute; right: 3px; bottom: 1px; } + @keyframes wobble { from { transform: none; } - 15% { transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } - 30% { transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } - 45% { transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } - 60% { transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } - 75% { transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } - to { transform: none; } } + .animated { animation-duration: 1s; animation-fill-mode: both; } + .wobble { animation-name: wobble; } + .console { background: var(--color-bg); - z-index: 6; /* bring above iframe & codemirror and also scrollbar in codemirror */ + z-index: 6; + /* bring above iframe & codemirror and also scrollbar in codemirror */ position: absolute; bottom: 0; min-height: 80px; height: 35vh; left: 0; right: 0; + display: flex; + flex-direction: column; transform: translateY(0); transition: transform 0.4s cubic-bezier(0.76, 0.01, 0.13, 0.9); } + .console.is-minimized { transform: translateY(calc(100% - 29px)); } -.console .Codemirror { - height: calc(100% - 55px); + +.console .CodeMirror { + height: calc(100% - 30px); } + +.console__log { + flex: 1; +} + .console-exec-input { padding: 5px; font-size: 1.3em; @@ -1115,19 +1335,24 @@ body > #demo-frame { border: 0; outline: 0; } + .console:not(.is-minimized) .code-wrap__header { cursor: ns-resize; } + .global-console-container { display: none; position: relative; height: 35px; } + /* Detached mode */ + .is-detached-mode .console, .is-detached-mode .footer { z-index: 4; } + .is-detached-mode .global-console-container { display: block; } @@ -1141,13 +1366,16 @@ body > #demo-frame { font-size: 0.9rem; font-weight: bold; } + .kbd-shortcut__details { display: inline-block; } + .web-maker-with-tag { position: relative; display: inline-block; } + /* .web-maker-with-tag:after { content: 'BETA'; @@ -1161,19 +1389,23 @@ body > #demo-frame { padding: 2px; font-size: 10px; } */ + .is-extension .web-maker-with-tag:after { display: none; } + .social-login-btn--github { color: white; background: #656b6f; border-color: #656b6f; } + .social-login-btn--facebook { color: white; background: #4e62c0; border-color: #4e62c0; } + .social-login-btn--google { background: white; border: 2px solid currentColor; @@ -1195,10 +1427,12 @@ body:not(.is-app) .show-when-app { position: relative; border: 1px solid transparent; } + .onboard-selection:hover { cursor: pointer; transform: scale(1.15); } + .onboard-selection.selected:after { content: ''; position: absolute; @@ -1210,6 +1444,7 @@ body:not(.is-app) .show-when-app { background: white url('data:image/svg+xml;charset=UTF-8,'); } + .bookmarklet { display: inline-flex; align-items: center; @@ -1218,10 +1453,10 @@ body:not(.is-app) .show-when-app { border-style: dashed; color: #333; } + .help-text { font-size: 0.9em; color: #616465; - padding-left: 1em; } .social-login-btn:after, @@ -1230,14 +1465,17 @@ body:not(.is-app) .show-when-app { .social-login-btn:hover:after { visibility: hidden; } + .last-login-github .social-login-btn--github:before, .last-login-github .social-login-btn--github:after { visibility: visible; } + .last-login-facebook .social-login-btn--facebook:before, .last-login-facebook .social-login-btn--facebook:after { visibility: visible; } + .last-login-google .social-login-btn--google:before, .last-login-google .social-login-btn--google:after { visibility: visible; @@ -1247,6 +1485,9 @@ body:not(.is-app) .show-when-app { body { font-size: 70%; } + .flex--desk { + display: flex; + } .main-header { overflow-x: auto; } @@ -1264,14 +1505,17 @@ body:not(.is-app) .show-when-app { /* Codemirror themes basic bg styles. This is here so that there is no big FOUC while the theme CSS file is loading */ + .cm-s-paraiso-dark.CodeMirror { background: #2f1e2e; color: #b9b6b0; } + .cm-s-paraiso-dark .CodeMirror-gutters { background: #2f1e2e; border-right: 0px; } + .cm-s-paraiso-dark .CodeMirror-activeline-background { background: #4d344a; } @@ -1280,10 +1524,12 @@ while the theme CSS file is loading */ background: #272822; color: #f8f8f2; } + .cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; } + .cm-s-monokai .CodeMirror-activeline-background { background: #373831; } @@ -1292,10 +1538,12 @@ while the theme CSS file is loading */ background: #f7f7f7; color: #3a3432; } + .cm-s-3024-day .CodeMirror-gutters { background: #f7f7f7; border-right: 0px; } + .cm-s-3024-day .CodeMirror-activeline-background { background: #e8f2ff; } @@ -1304,10 +1552,12 @@ while the theme CSS file is loading */ background-color: #263238; color: rgba(233, 237, 237, 1); } + .cm-s-material .CodeMirror-gutters { background: #263238; color: rgb(83, 127, 126); } + .cm-s-material .CodeMirror-activeline-background { background: rgba(0, 0, 0, 0); } @@ -1317,6 +1567,7 @@ while the theme CSS file is loading */ background-color: #282a36 !important; color: #f8f8f2 !important; } + .cm-s-dracula .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.1); } @@ -1325,10 +1576,12 @@ while the theme CSS file is loading */ background: #0c1021; color: #f8f8f8; } + .cm-s-blackboard .CodeMirror-gutters { background: #0c1021; border-right: 0; } + .cm-s-blackboard .CodeMirror-activeline-background { background: #3c3636; } @@ -1337,10 +1590,12 @@ while the theme CSS file is loading */ background: #0f192a; color: #d1edff; } + .cm-s-midnight .CodeMirror-gutters { background: #0f192a; border-right: 1px solid; } + .cm-s-midnight .CodeMirror-activeline-background { background: #253540; } diff --git a/src/takeScreenshot.js b/src/takeScreenshot.js new file mode 100644 index 0000000..8e80a9a --- /dev/null +++ b/src/takeScreenshot.js @@ -0,0 +1,139 @@ +import { handleDownloadsPermission, log } from './utils'; +import { trackEvent } from './analytics'; + +function saveScreenshot(dataURI) { + // convert base64 to raw binary data held in a string + // doesn't handle URLEncoded DataURIs + var byteString = atob(dataURI.split(',')[1]); + + // separate out the mime component + var mimeString = dataURI + .split(',')[0] + .split(':')[1] + .split(';')[0]; + + // write the bytes of the string to an ArrayBuffer + var ab = new ArrayBuffer(byteString.length); + var ia = new Uint8Array(ab); + for (var i = 0; i < byteString.length; i++) { + ia[i] = byteString.charCodeAt(i); + } + + // create a blob for writing to a file + var blob = new Blob([ab], { + type: mimeString + }); + var size = blob.size + 1024 / 2; + + var d = new Date(); + var fileName = [ + 'web-maker-screenshot', + d.getFullYear(), + d.getMonth() + 1, + d.getDate(), + d.getHours(), + d.getMinutes(), + d.getSeconds() + ].join('-'); + fileName += '.png'; + + function onWriteEnd() { + var filePath = + 'filesystem:chrome-extension://' + + chrome.i18n.getMessage('@@extension_id') + + '/temporary/' + + fileName; + + chrome.downloads.download( + { + url: filePath + }, + function() { + // If there was an error, just open the screenshot in a tab. + // This happens in incognito mode where extension cannot access filesystem. + if (chrome.runtime.lastError) { + window.open(filePath); + } + } + ); + } + + function errorHandler(e) { + log(e); + } + + // create a blob for writing to a file + window.webkitRequestFileSystem( + window.TEMPORARY, + size, + fs => { + fs.root.getFile( + fileName, + { + create: true + }, + fileEntry => { + fileEntry.createWriter(fileWriter => { + fileWriter.onwriteend = onWriteEnd; + fileWriter.write(blob); + }, errorHandler); + }, + errorHandler + ); + }, + errorHandler + ); +} + +export function takeScreenshot(boundRect) { + handleDownloadsPermission().then(() => { + // Hide tooltips so that they don't show in the screenshot + var s = document.createElement('style'); + s.textContent = + '[class*="hint"]:after, [class*="hint"]:before { display: none!important; }'; + document.body.appendChild(s); + + function onImgLoad(image) { + var c = document.createElement('canvas'); + var iframeBounds = boundRect; + c.width = iframeBounds.width; + c.height = iframeBounds.height; + var ctx = c.getContext('2d'); + var devicePixelRatio = window.devicePixelRatio || 1; + + ctx.drawImage( + image, + iframeBounds.left * devicePixelRatio, + iframeBounds.top * devicePixelRatio, + iframeBounds.width * devicePixelRatio, + iframeBounds.height * devicePixelRatio, + 0, + 0, + iframeBounds.width, + iframeBounds.height + ); + image.removeEventListener('load', onImgLoad); + saveScreenshot(c.toDataURL()); + } + + setTimeout(() => { + chrome.tabs.captureVisibleTab( + null, + { + format: 'png', + quality: 100 + }, + function(dataURI) { + s.remove(); + if (dataURI) { + var image = new Image(); + image.src = dataURI; + image.addEventListener('load', () => onImgLoad(image, dataURI)); + } + } + ); + }, 50); + + trackEvent('ui', 'takeScreenshotBtnClick'); + }); +} diff --git a/src/tests/__mocks__/browserMocks.js b/src/tests/__mocks__/browserMocks.js new file mode 100644 index 0000000..5be8c3c --- /dev/null +++ b/src/tests/__mocks__/browserMocks.js @@ -0,0 +1,21 @@ +// Mock Browser API's which are not supported by JSDOM, e.g. ServiceWorker, LocalStorage +/** + * An example how to mock localStorage is given below 👇 + */ + +/* +// Mocks localStorage +const localStorageMock = (function() { + let store = {}; + + return { + getItem: (key) => store[key] || null, + setItem: (key, value) => store[key] = value.toString(), + clear: () => store = {} + }; + +})(); + +Object.defineProperty(window, 'localStorage', { + value: localStorageMock +}); */ diff --git a/src/tests/__mocks__/fileMocks.js b/src/tests/__mocks__/fileMocks.js new file mode 100644 index 0000000..82f0d91 --- /dev/null +++ b/src/tests/__mocks__/fileMocks.js @@ -0,0 +1,3 @@ +// This fixed an error related to the CSS and loading gif breaking my Jest test +// See https://facebook.github.io/jest/docs/en/webpack.html#handling-static-assets +module.exports = 'test-file-stub'; \ No newline at end of file diff --git a/src/tests/header.test.js b/src/tests/header.test.js new file mode 100644 index 0000000..da9519e --- /dev/null +++ b/src/tests/header.test.js @@ -0,0 +1,14 @@ +import { h, Component } from 'preact'; +import Header from '../components/header'; +import { Link } from 'preact-router/match'; +// See: https://github.com/mzgoddard/preact-render-spy +import { shallow, deep } from 'preact-render-spy'; + +describe('Initial Test of the Header', () => { + + test('Header renders 3 nav items', () => { + const context = shallow(
); + expect(context.find('h1').text()).toBe('Preact App'); + expect(context.find().length).toBe(3); + }); +}); \ No newline at end of file diff --git a/src/textarea-autocomplete.js b/src/textarea-autocomplete.js deleted file mode 100644 index a6e23ab..0000000 --- a/src/textarea-autocomplete.js +++ /dev/null @@ -1,154 +0,0 @@ -// textarea-autocomplete.js -(function() { - class TextareaAutoComplete { - constructor(textarea, options) { - this.t = textarea; - this.filter = options.filter; - this.selectedCallback = options.selectedCallback; - var wrap = document.createElement('div'); - wrap.classList.add('btn-group'); - textarea.parentElement.insertBefore(wrap, textarea); - wrap.insertBefore(textarea, null); - this.list = document.createElement('ul'); - this.list.classList.add('dropdown__menu'); - this.list.classList.add('autocomplete-dropdown'); - wrap.insertBefore(this.list, null); - - this.loader = document.createElement('div'); - this.loader.classList.add('loader'); - this.loader.classList.add('autocomplete__loader'); - this.loader.style.display = 'none'; - wrap.insertBefore(this.loader, null); - - // after list is insrted into the DOM, we put it in the body - // fixed at same position - setTimeout(() => { - requestIdleCallback(() => { - document.body.appendChild(this.list); - this.list.style.position = 'fixed'; - }); - }, 100); - - this.t.addEventListener('input', e => this.onInput(e)); - this.t.addEventListener('keydown', e => this.onKeyDown(e)); - this.t.addEventListener('blur', e => this.closeSuggestions(e)); - this.list.addEventListener('mousedown', e => this.onListMouseDown(e)); - } - - get currentLineNumber() { - return this.t.value.substr(0, this.t.selectionStart).split('\n').length; - } - get currentLine() { - var line = this.currentLineNumber; - return this.t.value.split('\n')[line - 1]; - } - closeSuggestions() { - this.list.classList.remove('is-open'); - this.isShowingSuggestions = false; - } - getList(input) { - var url = 'https://api.cdnjs.com/libraries?search='; - return fetch(url + input).then(response => { - return response.json().then(json => json.results); - }); - } - replaceCurrentLine(val) { - var lines = this.t.value.split('\n'); - lines.splice(this.currentLineNumber - 1, 1, val); - this.t.value = lines.join('\n'); - } - onInput() { - var currentLine = this.currentLine; - if (currentLine) { - if ( - currentLine.indexOf('/') !== -1 || - currentLine.match(/https*:\/\//) - ) { - return; - } - clearTimeout(this.timeout); - this.timeout = setTimeout(() => { - this.loader.style.display = 'block'; - this.getList(currentLine).then(arr => { - this.loader.style.display = 'none'; - if (!arr.length) { - this.closeSuggestions(); - return; - } - this.list.innerHTML = ''; - if (this.filter) { - /* eslint-disable no-param-reassign */ - arr = arr.filter(this.filter); - } - for (var i = 0; i < Math.min(arr.length, 10); i++) { - this.list.innerHTML += `
  • ${arr[ - i - ].name}
  • `; - } - this.isShowingSuggestions = true; - if (!this.textareaBounds) { - this.textareaBounds = this.t.getBoundingClientRect(); - this.list.style.top = this.textareaBounds.bottom + 'px'; - this.list.style.left = this.textareaBounds.left + 'px'; - this.list.style.width = this.textareaBounds.width + 'px'; - } - this.list.classList.add('is-open'); - }); - }, 500); - } - } - onKeyDown(event) { - var selectedItemElement; - if (!this.isShowingSuggestions) { - return; - } - - if (event.keyCode === 27) { - this.closeSuggestions(); - event.stopPropagation(); - } - if (event.keyCode === 40 && this.isShowingSuggestions) { - selectedItemElement = this.list.querySelector('.selected'); - if (selectedItemElement) { - selectedItemElement.classList.remove('selected'); - selectedItemElement.nextElementSibling.classList.add('selected'); - } else { - this.list.querySelector('li:first-child').classList.add('selected'); - } - this.list.querySelector('.selected').scrollIntoView(false); - event.preventDefault(); - } else if (event.keyCode === 38 && this.isShowingSuggestions) { - selectedItemElement = this.list.querySelector('.selected'); - if (selectedItemElement) { - selectedItemElement.classList.remove('selected'); - selectedItemElement.previousElementSibling.classList.add('selected'); - } else { - this.list.querySelector('li:first-child').classList.add('selected'); - } - this.list.querySelector('.selected').scrollIntoView(false); - event.preventDefault(); - } else if (event.keyCode === 13 && this.isShowingSuggestions) { - selectedItemElement = this.list.querySelector('.selected'); - this.selectSuggestion(selectedItemElement.dataset.url); - this.closeSuggestions(); - } - } - onListMouseDown(event) { - var target = event.target; - if (target.parentElement.dataset.url) { - this.selectSuggestion(target.parentElement.dataset.url); - } - } - - selectSuggestion(value) { - if (this.selectedCallback) { - this.selectedCallback.call(null, value); - } else { - this.replaceCurrentLine(value); - } - this.closeSuggestions(); - } - } - - window.TextareaAutoComplete = TextareaAutoComplete; -})(); diff --git a/src/utils.js b/src/utils.js index b7692b8..1a91547 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,102 +1,120 @@ -(function() { - window.DEBUG = document.cookie.indexOf('wmdebug') > -1; +import { trackEvent } from './analytics'; - window.$ = document.querySelector.bind(document); - window.$all = selector => [...document.querySelectorAll(selector)]; - var alphaNum = - 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; +import { computeHtml, computeCss, computeJs } from './computes'; +import { JsModes } from './codeModes'; +import { deferred } from './deferred'; +const esprima = require('esprima'); - /** - * The following 2 functions are supposed to find the next/previous sibling until the - * passed `selector` is matched. But for now it actually finds the next/previous - * element of `this` element in the list of `selector` matched element inside `this`'s - * parent. - * @param Selector that should match for next siblings - * @return element Next element that mathes `selector` - */ - Node.prototype.nextUntil = function(selector) { - const siblings = [...this.parentNode.querySelectorAll(selector)]; - const index = siblings.indexOf(this); - return siblings[index + 1]; +window.DEBUG = document.cookie.indexOf('wmdebug') > -1; +window.$ = document.querySelector.bind(document); + +window.chrome = window.chrome || {}; +window.chrome.i18n = { + getMessage: () => {} +}; + +window.$all = selector => [...document.querySelectorAll(selector)]; +window.IS_EXTENSION = !!window.chrome.extension; +export const BASE_PATH = window.chrome.extension || window.DEBUG ? '/' : '/app'; + +var alphaNum = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + +/** + * The following 2 functions are supposed to find the next/previous sibling until the + * passed `selector` is matched. But for now it actually finds the next/previous + * element of `this` element in the list of `selector` matched element inside `this`'s + * parent. + * @param Selector that should match for next siblings + * @return element Next element that mathes `selector` + */ +Node.prototype.nextUntil = function(selector) { + const siblings = Array.from(this.parentNode.querySelectorAll(selector)); + const index = siblings.indexOf(this); + return siblings[index + 1]; +}; + +/* + * @param Selector that should match for next siblings + * @return element Next element that mathes `selector` + */ +Node.prototype.previousUntil = function(selector) { + const siblings = Array.from(this.parentNode.querySelectorAll(selector)); + const index = siblings.indexOf(this); + return siblings[index - 1]; +}; + +// Safari doesn't have this! +window.requestIdleCallback = + window.requestIdleCallback || + function(fn) { + setTimeout(fn, 10); }; - // Safari doesn't have this! - window.requestIdleCallback = - window.requestIdleCallback || - function(fn) { - setTimeout(fn, 10); - }; - - /* - * @param Selector that should match for next siblings - * @return element Next element that mathes `selector` - */ - Node.prototype.previousUntil = function(selector) { - const siblings = [...this.parentNode.querySelectorAll(selector)]; - const index = siblings.indexOf(this); - return siblings[index - 1]; - }; - - // https://github.com/substack/semver-compare/blob/master/index.js - function semverCompare(a, b) { - var pa = a.split('.'); - var pb = b.split('.'); - for (var i = 0; i < 3; i++) { - var na = Number(pa[i]); - var nb = Number(pb[i]); - if (na > nb) { - return 1; - } - if (nb > na) { - return -1; - } - if (!isNaN(na) && isNaN(nb)) { - return 1; - } - if (isNaN(na) && !isNaN(nb)) { - return -1; - } +// https://github.com/substack/semver-compare/blob/master/index.js +export function semverCompare(a, b) { + var pa = a.split('.'); + var pb = b.split('.'); + for (var i = 0; i < 3; i++) { + var na = Number(pa[i]); + var nb = Number(pb[i]); + if (na > nb) { + return 1; } - return 0; - } - - function generateRandomId(len) { - var length = len || 10; - var id = ''; - for (var i = length; i--; ) { - id += alphaNum[~~(Math.random() * alphaNum.length)]; + if (nb > na) { + return -1; } - return id; - } - - function onButtonClick(btn, listener) { - btn.addEventListener('click', function buttonClickListener(e) { - listener(e); - return false; - }); - } - - function log() { - if (window.DEBUG) { - console.log(...arguments); + if (!isNaN(na) && isNaN(nb)) { + return 1; + } + if (isNaN(na) && !isNaN(nb)) { + return -1; } } + return 0; +} - /** - * Adds timed limit on the loops found in the passed code. - * Contributed by Ariya Hidayat! - * @param code {string} Code to be protected from infinite loops. - */ - function addInfiniteLoopProtection(code, { timeout }) { - var loopId = 1; - var patches = []; - var varPrefix = '_wmloopvar'; - var varStr = 'var %d = Date.now();\n'; - var checkStr = `\nif (Date.now() - %d > ${timeout}) { window.top.previewException(new Error("Infinite loop")); break;}\n`; +export function generateRandomId(len) { + var length = len || 10; + var id = ''; + for (var i = length; i--; ) { + id += alphaNum[~~(Math.random() * alphaNum.length)]; + } + return id; +} - esprima.parse(code, { tolerant: true, range: true, jsx: true }, function( - node - ) { +export function onButtonClick(btn, listener) { + btn.addEventListener('click', function buttonClickListener(e) { + listener(e); + return false; + }); +} + +export function log() { + if (window.DEBUG) { + console.log(Date.now(), ...arguments); + } +} + +/** + * Adds timed limit on the loops found in the passed code. + * Contributed by Ariya Hidayat! + * @param code {string} Code to be protected from infinite loops. + */ +export function addInfiniteLoopProtection(code, { timeout }) { + var loopId = 1; + var patches = []; + var varPrefix = '_wmloopvar'; + var varStr = 'var %d = Date.now();\n'; + var checkStr = `\nif (Date.now() - %d > ${timeout}) { window.top.previewException(new Error("Infinite loop")); break;}\n`; + + esprima.parse( + code, + { + tolerant: true, + range: true, + jsx: true + }, + function(node) { switch (node.type) { case 'DoWhileStatement': case 'ForStatement': @@ -115,8 +133,14 @@ --start; } - patches.push({ pos: start, str: prolog }); - patches.push({ pos: end, str: epilog }); + patches.push({ + pos: start, + str: prolog + }); + patches.push({ + pos: end, + str: epilog + }); patches.push({ pos: node.range[0], str: varStr.replace('%d', varPrefix + loopId) @@ -127,103 +151,300 @@ default: break; } + } + ); + + /* eslint-disable no-param-reassign */ + patches + .sort(function(a, b) { + return b.pos - a.pos; + }) + .forEach(function(patch) { + code = code.slice(0, patch.pos) + patch.str + code.slice(patch.pos); }); - /* eslint-disable no-param-reassign */ - patches - .sort(function(a, b) { - return b.pos - a.pos; - }) - .forEach(function(patch) { - code = code.slice(0, patch.pos) + patch.str + code.slice(patch.pos); - }); + /* eslint-disable no-param-reassign */ + return code; +} - /* eslint-disable no-param-reassign */ - return code; +export function getHumanDate(timestamp) { + var d = new Date(timestamp); + var retVal = + d.getDate() + + ' ' + + [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December' + ][d.getMonth()] + + ' ' + + d.getFullYear(); + return retVal; +} + +// create a one-time event +export function once(node, type, callback) { + // create event + node.addEventListener(type, function(e) { + // remove event + e.target.removeEventListener(type, arguments.callee); + // call handler + return callback(e); + }); +} + +export function downloadFile(fileName, blob) { + function downloadWithAnchor() { + var a = document.createElement('a'); + a.href = window.URL.createObjectURL(blob); + a.download = fileName; + a.style.display = 'none'; + document.body.appendChild(a); + a.click(); + a.remove(); } - - function getHumanDate(timestamp) { - var d = new Date(timestamp); - var retVal = - d.getDate() + - ' ' + - [ - 'January', - 'February', - 'March', - 'April', - 'May', - 'June', - 'July', - 'August', - 'September', - 'October', - 'November', - 'December' - ][d.getMonth()] + - ' ' + - d.getFullYear(); - return retVal; - } - - // create a one-time event - function once(node, type, callback) { - // create event - node.addEventListener(type, function(e) { - // remove event - e.target.removeEventListener(type, arguments.callee); - // call handler - return callback(e); - }); - } - - function downloadFile(fileName, blob) { - function downloadWithAnchor() { - var a = document.createElement('a'); - a.href = window.URL.createObjectURL(blob); - a.download = fileName; - a.style.display = 'none'; - document.body.appendChild(a); - a.click(); - a.remove(); - } - if (window.IS_EXTENSION) { - chrome.downloads.download( - { - url: window.URL.createObjectURL(blob), - filename: fileName, - saveAs: true - }, - () => { - // If there was an error, just download the file using ANCHOR method. - if (chrome.runtime.lastError) { - downloadWithAnchor(); - } - } - ); - } else { - downloadWithAnchor(); - } - } - - window.utils = { - semverCompare, - generateRandomId, - onButtonClick, - addInfiniteLoopProtection, - getHumanDate, - log, - once, - downloadFile - }; - - window.chrome = window.chrome || {}; - window.chrome.i18n = { getMessage: () => {} }; - - window.IS_EXTENSION = !!window.chrome.extension; if (window.IS_EXTENSION) { - document.body.classList.add('is-extension'); + chrome.downloads.download( + { + url: window.URL.createObjectURL(blob), + filename: fileName, + saveAs: true + }, + () => { + // If there was an error, just download the file using ANCHOR method. + if (chrome.runtime.lastError) { + downloadWithAnchor(); + } + } + ); } else { - document.body.classList.add('is-app'); + downloadWithAnchor(); } -})(); +} + +export function writeFile(name, blob, cb) { + var fileWritten = false; + + function getErrorHandler(type) { + return function() { + log(arguments); + trackEvent('fn', 'error', type); + // When there are too many write errors, show a message. + writeFile.errorCount = (writeFile.errorCount || 0) + 1; + if (writeFile.errorCount === 4) { + setTimeout(function() { + alert( + "Oops! Seems like your preview isn't updating. It's recommended to switch to the web app: https://webmakerapp.com/app/.\n\n If you still want to get the extension working, please try the following steps until it fixes:\n - Refresh Web Maker\n - Restart browser\n - Update browser\n - Reinstall Web Maker (don't forget to export all your creations from saved items pane (click the OPEN button) before reinstalling)\n\nIf nothing works, please tweet out to @webmakerApp." + ); + trackEvent('ui', 'writeFileMessageSeen'); + }, 1000); + } + }; + } + + // utils.log('writing file ', name); + window.webkitRequestFileSystem( + window.TEMPORARY, + 1024 * 1024 * 5, + function(fs) { + fs.root.getFile( + name, + { + create: true + }, + function(fileEntry) { + fileEntry.createWriter(fileWriter => { + function onWriteComplete() { + if (fileWritten) { + // utils.log('file written ', name); + return cb(); + } + fileWritten = true; + // Set the write pointer to starting of file + fileWriter.seek(0); + fileWriter.write(blob); + return false; + } + fileWriter.onwriteend = onWriteComplete; + // Empty the file contents + fileWriter.truncate(0); + // utils.log('truncating file ', name); + }, getErrorHandler('createWriterFail')); + }, + getErrorHandler('getFileFail') + ); + }, + getErrorHandler('webkitRequestFileSystemFail') + ); +} + +export function loadJS(src) { + var d = deferred(); + var ref = window.document.getElementsByTagName('script')[0]; + var script = window.document.createElement('script'); + script.src = src; + script.async = true; + ref.parentNode.insertBefore(script, ref); + script.onload = function() { + d.resolve(); + }; + return d.promise; +} + +/* eslint-disable max-params */ +export function getCompleteHtml(html, css, js, item, isForExport) { + /* eslint-enable max-params */ + + if (!item) { + return ''; + } + var externalJs = '', + externalCss = ''; + if (item.externalLibs) { + externalJs = item.externalLibs.js + .split('\n') + .reduce(function(scripts, url) { + return scripts + (url ? '\n' : ''); + }, ''); + externalCss = item.externalLibs.css + .split('\n') + .reduce(function(links, url) { + return ( + links + + (url ? '\n' : '') + ); + }, ''); + } + var contents = + '\n' + + '\n\n' + + '\n' + + externalCss + + '\n' + + '\n' + + '\n' + + '\n' + + html + + '\n' + + externalJs + + '\n'; + + if (!isForExport) { + contents += + ''; + } + + if (item.jsMode === JsModes.ES6) { + contents += + ''; + } + + if (typeof js === 'string') { + contents += '\n\n'; + + return contents; +} + +export function saveAsHtml(item) { + var htmlPromise = computeHtml(item.html, item.htmlMode); + var cssPromise = computeCss(item.css, item.cssMode); + var jsPromise = computeJs(item.js, item.jsMode, false); + Promise.all([htmlPromise, cssPromise, jsPromise]).then(function(result) { + var html = result[0].code, + css = result[1].code, + js = result[2].code; + + var fileContent = getCompleteHtml(html, css, js, item, true); + + var d = new Date(); + var fileName = [ + 'web-maker', + d.getFullYear(), + d.getMonth() + 1, + d.getDate(), + d.getHours(), + d.getMinutes(), + d.getSeconds() + ].join('-'); + + if (item.title) { + fileName = item.title; + } + fileName += '.html'; + + var blob = new Blob([fileContent], { + type: 'text/html;charset=UTF-8' + }); + downloadFile(fileName, blob); + + trackEvent('fn', 'saveFileComplete'); + }); +} + +export function handleDownloadsPermission() { + var d = deferred(); + if (!window.IS_EXTENSION) { + d.resolve(); + return d.promise; + } + chrome.permissions.contains( + { + permissions: ['downloads'] + }, + function(result) { + if (result) { + d.resolve(); + } else { + chrome.permissions.request( + { + permissions: ['downloads'] + }, + function(granted) { + if (granted) { + trackEvent('fn', 'downloadsPermGiven'); + d.resolve(); + } else { + d.reject(); + } + } + ); + } + } + ); + return d.promise; +} + +if (window.IS_EXTENSION) { + document.body.classList.add('is-extension'); +} else { + document.body.classList.add('is-app'); +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..449bda3 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,10100 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" + dependencies: + "@babel/highlight" "7.0.0-beta.44" + +"@babel/generator@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" + dependencies: + "@babel/types" "7.0.0-beta.44" + jsesc "^2.5.1" + lodash "^4.2.0" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-function-name@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" + dependencies: + "@babel/helper-get-function-arity" "7.0.0-beta.44" + "@babel/template" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + +"@babel/helper-get-function-arity@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" + dependencies: + "@babel/types" "7.0.0-beta.44" + +"@babel/helper-split-export-declaration@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" + dependencies: + "@babel/types" "7.0.0-beta.44" + +"@babel/highlight@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +"@babel/template@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" + dependencies: + "@babel/code-frame" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + babylon "7.0.0-beta.44" + lodash "^4.2.0" + +"@babel/traverse@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" + dependencies: + "@babel/code-frame" "7.0.0-beta.44" + "@babel/generator" "7.0.0-beta.44" + "@babel/helper-function-name" "7.0.0-beta.44" + "@babel/helper-split-export-declaration" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + babylon "7.0.0-beta.44" + debug "^3.1.0" + globals "^11.1.0" + invariant "^2.2.0" + lodash "^4.2.0" + +"@babel/types@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" + dependencies: + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^2.0.0" + +"@emmetio/abbreviation@^0.6.0", "@emmetio/abbreviation@^0.6.6": + version "0.6.6" + resolved "https://registry.yarnpkg.com/@emmetio/abbreviation/-/abbreviation-0.6.6.tgz#03cd13983c22315d2b65fc66a99ad8c3fa44a8ce" + dependencies: + "@emmetio/node" "^0.1.2" + "@emmetio/stream-reader" "^2.2.0" + "@emmetio/stream-reader-utils" "^0.1.0" + +"@emmetio/codemirror-plugin@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@emmetio/codemirror-plugin/-/codemirror-plugin-0.5.4.tgz#859220349526a83c6f02a99c0f43e761983f7878" + dependencies: + "@emmetio/config" "^0.4.0" + "@emmetio/css-snippets-resolver" "^0.3.1" + "@emmetio/expand-abbreviation" "^0.7.1" + "@emmetio/extract-abbreviation" "^0.2.0" + "@emmetio/field-parser" "^0.3.1" + "@emmetio/html-matcher" "^0.3.3" + "@emmetio/stream-reader" "^2.2.0" + "@emmetio/stream-reader-utils" "^0.1.0" + +"@emmetio/config@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@emmetio/config/-/config-0.4.0.tgz#f54b52e4f95edb5acc53f6cb473d961555c15fff" + +"@emmetio/css-abbreviation@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@emmetio/css-abbreviation/-/css-abbreviation-0.4.0.tgz#5da9b313f3625e3d7539065c5ebeca83891e4dac" + dependencies: + "@emmetio/node" "^0.1.2" + "@emmetio/stream-reader" "^2.2.0" + "@emmetio/stream-reader-utils" "^0.1.0" + +"@emmetio/css-snippets-resolver@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emmetio/css-snippets-resolver/-/css-snippets-resolver-0.3.1.tgz#b375df74f660fc61b44e9604224487a31be627fb" + +"@emmetio/css-snippets-resolver@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@emmetio/css-snippets-resolver/-/css-snippets-resolver-0.4.0.tgz#6477ead6d25d838e685fa5c84c25aafa576479dc" + +"@emmetio/expand-abbreviation@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@emmetio/expand-abbreviation/-/expand-abbreviation-0.7.1.tgz#6b892fab17a2969187ff117c2234cefe71de67e7" + dependencies: + "@emmetio/abbreviation" "^0.6.6" + "@emmetio/css-abbreviation" "^0.4.0" + "@emmetio/css-snippets-resolver" "^0.4.0" + "@emmetio/html-snippets-resolver" "^0.1.4" + "@emmetio/html-transform" "^0.3.9" + "@emmetio/lorem" "^1.0.1" + "@emmetio/markup-formatters" "^0.4.0" + "@emmetio/output-profile" "^0.1.6" + "@emmetio/snippets" "^0.2.9" + "@emmetio/snippets-registry" "^0.3.1" + "@emmetio/stylesheet-formatters" "^0.2.1" + "@emmetio/variable-resolver" "^0.2.1" + +"@emmetio/extract-abbreviation@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@emmetio/extract-abbreviation/-/extract-abbreviation-0.2.0.tgz#0afc2b40c060549b98ea7b18f426e8317df5829e" + +"@emmetio/field-parser@^0.3.0", "@emmetio/field-parser@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emmetio/field-parser/-/field-parser-0.3.1.tgz#00ff922b2ccc23929d825ad83a9e4fbd094fc0f9" + dependencies: + "@emmetio/stream-reader" "^2.2.0" + "@emmetio/stream-reader-utils" "^0.1.0" + +"@emmetio/html-matcher@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@emmetio/html-matcher/-/html-matcher-0.3.3.tgz#0bbdadc0882e185950f03737dc6dbf8f7bd90728" + dependencies: + "@emmetio/stream-reader" "^2.0.0" + "@emmetio/stream-reader-utils" "^0.1.0" + +"@emmetio/html-snippets-resolver@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@emmetio/html-snippets-resolver/-/html-snippets-resolver-0.1.4.tgz#b33ad3fa78fd78d64b94bf88a9fb68b3ad8e8e7e" + dependencies: + "@emmetio/abbreviation" "^0.6.0" + +"@emmetio/html-transform@^0.3.9": + version "0.3.10" + resolved "https://registry.yarnpkg.com/@emmetio/html-transform/-/html-transform-0.3.10.tgz#f5edbeabe8712e393709298384d7f412fe0aaa7b" + dependencies: + "@emmetio/implicit-tag" "^1.0.0" + +"@emmetio/implicit-tag@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emmetio/implicit-tag/-/implicit-tag-1.0.0.tgz#f826d4e1fc51da39434c2326b6f6d0e2b2e7b419" + +"@emmetio/lorem@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@emmetio/lorem/-/lorem-1.0.2.tgz#8de6a5718f39172ea7d22532a5b0d3bbd10083dc" + dependencies: + "@emmetio/implicit-tag" "^1.0.0" + +"@emmetio/markup-formatters@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@emmetio/markup-formatters/-/markup-formatters-0.4.0.tgz#eed95952edfd76f5a7db6e4fabfc57ca7b44efc6" + dependencies: + "@emmetio/field-parser" "^0.3.0" + "@emmetio/output-renderer" "^0.1.2" + +"@emmetio/node@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@emmetio/node/-/node-0.1.2.tgz#4231d538c45481a51835fc2aba3f5d9fc129634c" + +"@emmetio/output-profile@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@emmetio/output-profile/-/output-profile-0.1.6.tgz#15de23135f4b57225d192cd6efd73d8ffc9dd380" + +"@emmetio/output-renderer@^0.1.1", "@emmetio/output-renderer@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@emmetio/output-renderer/-/output-renderer-0.1.2.tgz#0ece11acce9298507868aed21ab5253e1eb082f8" + dependencies: + "@emmetio/field-parser" "^0.3.0" + +"@emmetio/snippets-registry@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emmetio/snippets-registry/-/snippets-registry-0.3.1.tgz#ec0e8a122fe9683659ce69a22396f4136b940d20" + +"@emmetio/snippets@^0.2.9": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@emmetio/snippets/-/snippets-0.2.9.tgz#0cea8b742ef3ae7fd5db68bed782f3946a6ea761" + +"@emmetio/stream-reader-utils@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz#244cb02c77ec2e74f78a9bd318218abc9c500a61" + +"@emmetio/stream-reader@^2.0.0", "@emmetio/stream-reader@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz#46cffea119a0a003312a21c2d9b5628cb5fcd442" + +"@emmetio/stylesheet-formatters@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@emmetio/stylesheet-formatters/-/stylesheet-formatters-0.2.1.tgz#d27be6664a6e18b395eca07f6157aa65800b267f" + dependencies: + "@emmetio/field-parser" "^0.3.0" + "@emmetio/output-renderer" "^0.1.1" + +"@emmetio/variable-resolver@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@emmetio/variable-resolver/-/variable-resolver-0.2.1.tgz#ce11b51584669a340986690cf0ec269e44c63fba" + +"@firebase/app-types@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.3.2.tgz#a92dc544290e2893bd8c02a81e684dae3d8e7c85" + +"@firebase/app@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.3.3.tgz#cb8df89495e4409e92ab30c0068b9e0641a6db81" + dependencies: + "@firebase/app-types" "0.3.2" + "@firebase/util" "0.2.1" + dom-storage "2.1.0" + tslib "1.9.0" + xmlhttprequest "1.8.0" + +"@firebase/auth-types@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.3.3.tgz#950a68bdae1e1e37ece054ff69ee0082c5ecabab" + +"@firebase/auth@0.5.3": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.5.3.tgz#4f0d83cd5a7c173d3a7a06f904bb1084acd8a0c4" + dependencies: + "@firebase/auth-types" "0.3.3" + +"@firebase/database-types@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.3.2.tgz#70611a64dd460e0e253c7427f860d56a1afd86fe" + +"@firebase/database@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.3.3.tgz#01123d4e0f8cb020e685ead27d795ef8794b2991" + dependencies: + "@firebase/database-types" "0.3.2" + "@firebase/logger" "0.1.1" + "@firebase/util" "0.2.1" + faye-websocket "0.11.1" + tslib "1.9.0" + +"@firebase/firestore-types@0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-0.4.3.tgz#0baa4f68aa8889474f582320af577f1e9a78fab6" + +"@firebase/firestore@0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-0.5.4.tgz#26f67fa038ffd74ef849019728c59d4a5590a324" + dependencies: + "@firebase/firestore-types" "0.4.3" + "@firebase/logger" "0.1.1" + "@firebase/webchannel-wrapper" "0.2.8" + grpc "1.11.3" + tslib "1.9.0" + +"@firebase/functions-types@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.1.3.tgz#17bc08a51f92b4eb5d1498f18b363f6c0e3a2df8" + +"@firebase/functions@0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.2.4.tgz#4d7acbc1feb8a1503f12072e40ea797d42bdb6b7" + dependencies: + "@firebase/functions-types" "0.1.3" + "@firebase/messaging-types" "0.2.3" + isomorphic-fetch "2.2.1" + tslib "1.9.0" + +"@firebase/logger@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.1.1.tgz#af5df54253286993f4b367c3dabe569c848860d3" + +"@firebase/messaging-types@0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@firebase/messaging-types/-/messaging-types-0.2.3.tgz#ed2949129dc5b3b0adff23ae1e1010bc7806f974" + +"@firebase/messaging@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.3.4.tgz#374d8e19e8fa900d81bc30f5d4e8946bd1c336a7" + dependencies: + "@firebase/messaging-types" "0.2.3" + "@firebase/util" "0.2.1" + tslib "1.9.0" + +"@firebase/polyfill@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@firebase/polyfill/-/polyfill-0.3.3.tgz#9c882429762d99ba70ffe2074523e30ea03524ee" + dependencies: + core-js "2.5.5" + promise-polyfill "7.1.2" + whatwg-fetch "2.0.4" + +"@firebase/storage-types@0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.2.3.tgz#09e7ce30eb0d713733e0193cb5c0c3ac157bf330" + +"@firebase/storage@0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.2.3.tgz#80188243d8274de9cc0fab570bc9064664a8563d" + dependencies: + "@firebase/storage-types" "0.2.3" + tslib "1.9.0" + +"@firebase/util@0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.2.1.tgz#b59a2fbf14fce21401cbebf776a3e0260b591380" + dependencies: + tslib "1.9.0" + +"@firebase/webchannel-wrapper@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.8.tgz#38a936b60b898a1ad0f3719543ff1a1031f60f8b" + +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" + dependencies: + any-observable "^0.3.0" + +"@types/configstore@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@types/configstore/-/configstore-2.1.1.tgz#cd1e8553633ad3185c3f2f239ecff5d2643e92b6" + +"@types/debug@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.29.tgz#a1e514adfbd92f03a224ba54d693111dbf1f3754" + +"@types/events@*": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" + +"@types/get-port@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@types/get-port/-/get-port-0.0.4.tgz#eb6bb7423d9f888b632660dc7d2fd3e69a35643e" + +"@types/glob@^5.0.30": + version "5.0.35" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.35.tgz#1ae151c802cece940443b5ac246925c85189f32a" + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + +"@types/mkdirp@^0.3.29": + version "0.3.29" + resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.3.29.tgz#7f2ad7ec55f914482fc9b1ec4bb1ae6028d46066" + +"@types/node@*": + version "10.3.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.3.tgz#8798d9e39af2fa604f715ee6a6b19796528e46c3" + +"@types/node@^7.0.11": + version "7.0.66" + resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.66.tgz#3d1dc4d6f52e484e843806ff456379f7e6ad5553" + +"@types/tmp@^0.0.32": + version "0.0.32" + resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.0.32.tgz#0d3cb31022f8427ea58c008af32b80da126ca4e3" + +abab@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accepts@~1.3.4, accepts@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + dependencies: + mime-types "~2.1.18" + negotiator "0.6.1" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + +acorn-globals@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" + dependencies: + acorn "^4.0.4" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^4.0.3, acorn@^4.0.4: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0, acorn@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" + +ajv-keywords@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + +ajv-keywords@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" + +ajv@^5.0.0, ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.1.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.1.tgz#88ebc1263c7133937d108b80c5572e64e1d9322d" + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + dependencies: + ansi-wrap "^0.1.0" + +ansi-cyan@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" + dependencies: + ansi-wrap "0.1.0" + +ansi-escapes@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-escapes@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" + +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + dependencies: + ansi-wrap "0.1.0" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + +ansi-red@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + +ansi-wrap@0.1.0, ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +app-root-path@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" + +append-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" + dependencies: + buffer-equal "^1.0.0" + +append-transform@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" + dependencies: + default-require-extensions "^2.0.0" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +archive-type@^3.0.0, archive-type@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-3.2.0.tgz#9cd9c006957ebe95fadad5bd6098942a813737f6" + dependencies: + file-type "^3.1.0" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" + dependencies: + arr-flatten "^1.0.1" + array-slice "^0.2.3" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-union@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-flatten@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.0, array-uniq@^1.0.1, array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +ascli@~1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ascli/-/ascli-1.0.1.tgz#bcfa5974a62f18e81cabaeb49732ab4a88f906bc" + dependencies: + colour "~0.7.1" + optjs "~3.2.2" + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + +async-each-series@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-1.1.0.tgz#f42fd8155d38f21a5b8ea07c28e063ed1700b138" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^1.4.0, async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.1.2, async@^2.1.4, async@^2.4.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + dependencies: + lodash "^4.17.10" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" + +autoprefixer@^6.3.1: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +autoprefixer@^7.1.0: + version "7.2.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" + dependencies: + browserslist "^2.11.3" + caniuse-lite "^1.0.30000805" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.17" + postcss-value-parser "^3.2.3" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.0.0, babel-core@^6.24.1, babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-eslint@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" + dependencies: + babel-code-frame "^6.22.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" + babylon "^6.17.0" + +babel-eslint@^8.1.2: + version "8.2.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.3.tgz#1a2e6681cc9bc4473c32899e59915e19cd6733cf" + dependencies: + "@babel/code-frame" "7.0.0-beta.44" + "@babel/traverse" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + babylon "7.0.0-beta.44" + eslint-scope "~3.7.1" + eslint-visitor-keys "^1.0.0" + +babel-generator@^6.18.0, babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-builder-react-jsx@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + esutils "^2.0.2" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-evaluate-path@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.2.0.tgz#0bb2eb01996c0cef53c5e8405e999fe4a0244c08" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-flip-expressions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.2.0.tgz#160d2090a3d9f9c64a750905321a0bc218f884ec" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-is-nodes-equiv@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" + +babel-helper-is-void-0@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.2.0.tgz#6ed0ada8a9b1c5b6e88af6b47c1b3b5c080860eb" + +babel-helper-mark-eval-scopes@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.2.0.tgz#7648aaf2ec92aae9b09a20ad91e8df5e1fcc94b2" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-remove-or-void@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.2.0.tgz#8e46ad5b30560d57d7510b3fd93f332ee7c67386" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-to-multiple-sequence-expressions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.2.0.tgz#d1a419634c6cb301f27858c659167cfee0a9d318" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-jest@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.2.0.tgz#2ce059519a9374a2c46f2455b6fbef5ad75d863e" + dependencies: + babel-plugin-istanbul "^4.0.0" + babel-preset-jest "^21.2.0" + +babel-loader@^7.0.0: + version "7.1.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.4.tgz#e3463938bd4e6d55d1c174c5485d406a188ed015" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-minify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-minify/-/babel-minify-0.2.0.tgz#36d381fee4002d7949dd5d796e74800336057d67" + dependencies: + babel-core "^6.24.1" + babel-preset-minify "^0.2.0" + fs-readdir-recursive "^1.0.0" + mkdirp "^0.5.1" + util.promisify "^1.0.0" + yargs-parser "^5.0.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-istanbul@^4.0.0: + version "4.1.6" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.13.0" + find-up "^2.1.0" + istanbul-lib-instrument "^1.10.1" + test-exclude "^4.2.1" + +babel-plugin-jest-hoist@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz#2cef637259bd4b628a6cace039de5fcd14dbb006" + +babel-plugin-jsx-pragmatic@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jsx-pragmatic/-/babel-plugin-jsx-pragmatic-1.0.2.tgz#41e2beb8642235f34b2a7ab12ca39e07201b8e59" + dependencies: + babel-plugin-syntax-jsx "^6.0.0" + +babel-plugin-minify-builtins@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.2.0.tgz#317f824b0907210b6348671bb040ca072e2e0c82" + dependencies: + babel-helper-evaluate-path "^0.2.0" + +babel-plugin-minify-constant-folding@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.2.0.tgz#8c70b528b2eb7c13e94d95c8789077d4cdbc3970" + dependencies: + babel-helper-evaluate-path "^0.2.0" + +babel-plugin-minify-dead-code-elimination@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.2.0.tgz#e8025ee10a1e5e4f202633a6928ce892c33747e3" + dependencies: + babel-helper-evaluate-path "^0.2.0" + babel-helper-mark-eval-scopes "^0.2.0" + babel-helper-remove-or-void "^0.2.0" + lodash.some "^4.6.0" + +babel-plugin-minify-flip-comparisons@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.2.0.tgz#0c9c8e93155c8f09dedad8118b634c259f709ef5" + dependencies: + babel-helper-is-void-0 "^0.2.0" + +babel-plugin-minify-guarded-expressions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.2.0.tgz#8a8c950040fce3e258a12e6eb21eab94ad7235ab" + dependencies: + babel-helper-flip-expressions "^0.2.0" + +babel-plugin-minify-infinity@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.2.0.tgz#30960c615ddbc657c045bb00a1d8eb4af257cf03" + +babel-plugin-minify-mangle-names@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.2.0.tgz#719892297ff0106a6ec1a4b0fc062f1f8b6a8529" + dependencies: + babel-helper-mark-eval-scopes "^0.2.0" + +babel-plugin-minify-numeric-literals@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.2.0.tgz#5746e851700167a380c05e93f289a7070459a0d1" + +babel-plugin-minify-replace@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.2.0.tgz#3c1f06bc4e6d3e301eacb763edc1be611efc39b0" + +babel-plugin-minify-simplify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.2.0.tgz#21ceec4857100c5476d7cef121f351156e5c9bc0" + dependencies: + babel-helper-flip-expressions "^0.2.0" + babel-helper-is-nodes-equiv "^0.0.1" + babel-helper-to-multiple-sequence-expressions "^0.2.0" + +babel-plugin-minify-type-constructors@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.2.0.tgz#7f3b6458be0863cfd59e9985bed6d134aa7a2e17" + dependencies: + babel-helper-is-void-0 "^0.2.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-class-properties@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + +babel-plugin-syntax-decorators@^6.1.18: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-export-extensions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" + +babel-plugin-syntax-jsx@^6.0.0, babel-plugin-syntax-jsx@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + +babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-class-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" + dependencies: + babel-helper-function-name "^6.24.1" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-decorators-legacy@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.5.tgz#0e492dffa0edd70529072887f8aa86d4dd8b40a1" + dependencies: + babel-plugin-syntax-decorators "^6.1.18" + babel-runtime "^6.2.0" + babel-template "^6.3.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-export-extensions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" + dependencies: + babel-plugin-syntax-export-extensions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-inline-consecutive-adds@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.2.0.tgz#15dae78921057f4004f8eafd79e15ddc5f12f426" + +babel-plugin-transform-member-expression-literals@^6.8.5: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf" + +babel-plugin-transform-merge-sibling-variables@^6.8.6: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" + +babel-plugin-transform-minify-booleans@^6.8.3: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" + +babel-plugin-transform-object-assign@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz#f99d2f66f1a0b0d498e346c5359684740caa20ba" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-property-literals@^6.8.5: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" + dependencies: + esutils "^2.0.2" + +babel-plugin-transform-react-constant-elements@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz#2f119bf4d2cdd45eb9baaae574053c604f6147dd" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + dependencies: + babel-helper-builder-react-jsx "^6.24.1" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-remove-prop-types@^0.4.5: + version "0.4.13" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.13.tgz#331cfc05099a808238311d78319c27460d481189" + +babel-plugin-transform-regenerator@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-regexp-constructors@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.2.0.tgz#6aa5dd0acc515db4be929bbcec4ed4c946c534a3" + +babel-plugin-transform-remove-console@^6.8.5: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" + +babel-plugin-transform-remove-debugger@^6.8.5: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2" + +babel-plugin-transform-remove-undefined@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.2.0.tgz#94f052062054c707e8d094acefe79416b63452b1" + dependencies: + babel-helper-evaluate-path "^0.2.0" + +babel-plugin-transform-simplify-comparison-operators@^6.8.5: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-undefined-to-void@^6.8.3: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" + +babel-polyfill@^6.2.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.3.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^3.2.6" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-jest@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz#ff9d2bce08abd98e8a36d9a8a5189b9173b85638" + dependencies: + babel-plugin-jest-hoist "^21.2.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" + +babel-preset-minify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.2.0.tgz#006566552d9b83834472273f306c0131062a0acc" + dependencies: + babel-plugin-minify-builtins "^0.2.0" + babel-plugin-minify-constant-folding "^0.2.0" + babel-plugin-minify-dead-code-elimination "^0.2.0" + babel-plugin-minify-flip-comparisons "^0.2.0" + babel-plugin-minify-guarded-expressions "^0.2.0" + babel-plugin-minify-infinity "^0.2.0" + babel-plugin-minify-mangle-names "^0.2.0" + babel-plugin-minify-numeric-literals "^0.2.0" + babel-plugin-minify-replace "^0.2.0" + babel-plugin-minify-simplify "^0.2.0" + babel-plugin-minify-type-constructors "^0.2.0" + babel-plugin-transform-inline-consecutive-adds "^0.2.0" + babel-plugin-transform-member-expression-literals "^6.8.5" + babel-plugin-transform-merge-sibling-variables "^6.8.6" + babel-plugin-transform-minify-booleans "^6.8.3" + babel-plugin-transform-property-literals "^6.8.5" + babel-plugin-transform-regexp-constructors "^0.2.0" + babel-plugin-transform-remove-console "^6.8.5" + babel-plugin-transform-remove-debugger "^6.8.5" + babel-plugin-transform-remove-undefined "^0.2.0" + babel-plugin-transform-simplify-comparison-operators "^6.8.5" + babel-plugin-transform-undefined-to-void "^6.8.3" + lodash.isplainobject "^4.0.6" + +babel-register@^6.24.1, babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0, babel-template@^6.3.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@7.0.0-beta.44: + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" + +babylon@^6.17.0, babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +bin-build@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-2.2.0.tgz#11f8dd61f70ffcfa2bdcaa5b46f5e8fedd4221cc" + dependencies: + archive-type "^3.0.1" + decompress "^3.0.0" + download "^4.1.2" + exec-series "^1.0.0" + rimraf "^2.2.6" + tempfile "^1.0.0" + url-regex "^3.0.0" + +bin-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-2.0.0.tgz#86f8e6f4253893df60dc316957f5af02acb05930" + dependencies: + executable "^1.0.0" + +bin-version-check@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-2.1.0.tgz#e4e5df290b9069f7d111324031efc13fdd11a5b0" + dependencies: + bin-version "^1.0.0" + minimist "^1.1.0" + semver "^4.0.3" + semver-truncate "^1.0.0" + +bin-version@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-1.0.4.tgz#9eb498ee6fd76f7ab9a7c160436f89579435d78e" + dependencies: + find-versions "^1.0.0" + +bin-wrapper@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-3.0.2.tgz#67d3306262e4b1a5f2f88ee23464f6a655677aeb" + dependencies: + bin-check "^2.0.0" + bin-version-check "^2.1.0" + download "^4.0.0" + each-async "^1.1.1" + lazy-req "^1.0.0" + os-filter-obj "^1.0.0" + +binary-extensions@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + +bl@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +body-parser@1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.0, braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-resolve@^1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.1.tgz#3343124db6d7ad53e26a8826318712bdc8450f9c" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + +browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^2.11.3: + version "2.11.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" + dependencies: + caniuse-lite "^1.0.30000792" + electron-to-chromium "^1.3.30" + +browserslist@^3.2.6, browserslist@^3.2.8: + version "3.2.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + +bser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + dependencies: + node-int64 "^0.4.0" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + +buffer-alloc@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + +buffer-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + +buffer-from@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + +buffer-to-vinyl@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz#00f15faee3ab7a1dda2cde6d9121bffdd07b2262" + dependencies: + file-type "^3.1.0" + readable-stream "^2.0.2" + uuid "^2.0.1" + vinyl "^1.0.0" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + +bytebuffer@~5: + version "5.0.1" + resolved "https://registry.yarnpkg.com/bytebuffer/-/bytebuffer-5.0.1.tgz#582eea4b1a873b6d020a48d58df85f0bba6cfddd" + dependencies: + long "~3" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + +cacache@^10.0.4: + version "10.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0, camelcase@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-api@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639, caniuse-db@^1.0.30000846: + version "1.0.30000856" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000856.tgz#fbebb99abe15a5654fc7747ebb5315bdfde3358f" + +caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844: + version "1.0.30000856" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000856.tgz#ecc16978135a6f219b138991eb62009d25ee8daa" + +capture-exit@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + dependencies: + rsvp "^3.3.3" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +caw@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/caw/-/caw-1.2.0.tgz#ffb226fe7efc547288dc62ee3e97073c212d1034" + dependencies: + get-proxy "^1.0.1" + is-obj "^1.0.0" + object-assign "^3.0.0" + tunnel-agent "^0.4.0" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + +chokidar@^2.0.0, chokidar@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.0" + optionalDependencies: + fsevents "^1.1.2" + +chownr@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + +ci-info@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +clap@^1.0.9: + version "1.2.3" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" + dependencies: + chalk "^1.1.3" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@4.1.11, clean-css@4.1.x: + version "4.1.11" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" + dependencies: + source-map "0.5.x" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-cursor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-spinners@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" + +cli-spinners@^1.0.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.0.3, cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0, clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + +clone@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + +cloneable-readable@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +co@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coa@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + dependencies: + q "^1.1.2" + +code-blast-codemirror@chinchang/code-blast-codemirror#web-maker: + version "0.0.0" + resolved "https://codeload.github.com/chinchang/code-blast-codemirror/tar.gz/419e564f1053f1d0fe1648914be04dbaff6d655b" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +codemirror@^5.37.0: + version "5.38.0" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.38.0.tgz#26a9551446e51dbdde36aabe60f72469724fd332" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.3.0, color-convert@^1.9.0: + version "1.9.2" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" + dependencies: + color-name "1.1.1" + +color-name@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" + +color-name@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + dependencies: + color-name "^1.0.0" + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + +color@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +colour@~0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/colour/-/colour-0.7.1.tgz#9cb169917ec5d12c0736d3e8685746df1cadf778" + +combined-stream@1.0.6, combined-stream@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + +command-exists@^1.2.2: + version "1.2.6" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.6.tgz#577f8e5feb0cb0f159cd557a51a9be1bdd76e09e" + +commander@2.15.x, commander@^2.14.1, commander@^2.9.0, commander@~2.15.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + +commander@~2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +compare-versions@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.3.0.tgz#af93ea705a96943f622ab309578b9b90586f39c3" + +component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +compressible@~2.0.13: + version "2.0.14" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.14.tgz#326c5f507fbb055f54116782b969a81b67a29da7" + dependencies: + mime-db ">= 1.34.0 < 2" + +compression@^1.5.2: + version "1.7.2" + resolved "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69" + dependencies: + accepts "~1.3.4" + bytes "3.0.0" + compressible "~2.0.13" + debug "2.6.9" + on-headers "~1.0.1" + safe-buffer "5.1.1" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-with-sourcemaps@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + dependencies: + source-map "^0.6.1" + +configstore@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +connect-history-api-fallback@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-clear@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-clear/-/console-clear-1.1.0.tgz#d5d381b813c80d14d2cce169449585639d31325a" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +console-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type-parser@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + +convert-source-map@^1.1.1, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + +copy-webpack-plugin@^4.1.0, copy-webpack-plugin@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.5.1.tgz#fc4f68f4add837cc5e13d111b20715793225d29c" + dependencies: + cacache "^10.0.4" + find-cache-dir "^1.0.0" + globby "^7.1.1" + is-glob "^4.0.0" + loader-utils "^1.1.0" + minimatch "^3.0.4" + p-limit "^1.0.0" + serialize-javascript "^1.4.0" + +core-js@2.5.5: + version "2.5.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.5.tgz#b14dde936c640c0579a6b50cabcc132dd6127e3b" + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + +cosmiconfig@^5.0.2: + version "5.0.5" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.5.tgz#a809e3c2306891ce17ab70359dc8bdf661fe2cd0" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.9.0" + parse-json "^4.0.0" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.0, create-error-class@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn-promise@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/cross-spawn-promise/-/cross-spawn-promise-0.10.1.tgz#db9cb4c50c60b72a15be049b78122ce382d87b10" + dependencies: + cross-spawn "^5.1.0" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + +css-loader@^0.28.7: + version "0.28.11" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" + dependencies: + babel-code-frame "^6.26.0" + css-selector-tokenizer "^0.7.0" + cssnano "^3.10.0" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.1.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-modules-require-hook@^4.0.6: + version "4.2.3" + resolved "https://registry.yarnpkg.com/css-modules-require-hook/-/css-modules-require-hook-4.2.3.tgz#6792ca412b15e23e6f9be6a07dcef7f577ff904d" + dependencies: + debug "^2.2.0" + generic-names "^1.0.1" + glob-to-regexp "^0.3.0" + icss-replace-symbols "^1.0.2" + lodash "^4.3.0" + postcss "^6.0.1" + postcss-modules-extract-imports "^1.0.0" + postcss-modules-local-by-default "^1.0.1" + postcss-modules-resolve-imports "^1.3.0" + postcss-modules-scope "^1.0.0" + postcss-modules-values "^1.1.1" + seekout "^1.0.1" + +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-selector-tokenizer@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-what@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + +cssnano@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" + +"cssstyle@>= 0.2.37 < 0.3.0": + version "0.2.37" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" + dependencies: + cssom "0.3.x" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-fns@^1.27.2: + version "1.29.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +dateformat@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" + +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +decompress-tar@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466" + dependencies: + is-tar "^1.0.0" + object-assign "^2.0.0" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-tarbz2@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d" + dependencies: + is-bzip2 "^1.0.0" + object-assign "^2.0.0" + seek-bzip "^1.0.3" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-targz@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0" + dependencies: + is-gzip "^1.0.0" + object-assign "^2.0.0" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-unzip@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb" + dependencies: + is-zip "^1.0.0" + read-all-stream "^3.0.0" + stat-mode "^0.2.0" + strip-dirs "^1.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + yauzl "^2.2.1" + +decompress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed" + dependencies: + buffer-to-vinyl "^1.0.0" + concat-stream "^1.4.6" + decompress-tar "^3.0.0" + decompress-tarbz2 "^3.0.0" + decompress-targz "^3.0.0" + decompress-unzip "^3.0.0" + stream-combiner2 "^1.1.1" + vinyl-assign "^1.0.1" + vinyl-fs "^2.2.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + +deep-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +default-require-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" + dependencies: + strip-bom "^3.0.0" + +defaults@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +del@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +del@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +depd@~1.1.1, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + +deprecated@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +detect-node@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" + +devcert-san@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/devcert-san/-/devcert-san-0.3.3.tgz#aa77244741b2d831771c011f22ee25e396ad4ba9" + dependencies: + "@types/configstore" "^2.1.1" + "@types/debug" "^0.0.29" + "@types/get-port" "^0.0.4" + "@types/glob" "^5.0.30" + "@types/mkdirp" "^0.3.29" + "@types/node" "^7.0.11" + "@types/tmp" "^0.0.32" + command-exists "^1.2.2" + configstore "^3.0.0" + debug "^2.6.3" + eol "^0.8.1" + get-port "^3.0.0" + glob "^7.1.1" + mkdirp "^0.5.1" + tmp "^0.0.31" + tslib "^1.6.0" + +diff@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + dependencies: + buffer-indexof "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + dependencies: + esutils "^2.0.2" + +dom-converter@~0.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" + dependencies: + utila "~0.3" + +dom-serializer@0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +dom-storage@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/dom-storage/-/dom-storage-2.1.0.tgz#00fb868bc9201357ea243c7bcfd3304c1e34ea39" + +dom-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/dom-urls/-/dom-urls-1.1.0.tgz#001ddf81628cd1e706125c7176f53ccec55d918e" + dependencies: + urijs "^1.16.1" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + +domelementtype@1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domhandler@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" + dependencies: + domelementtype "1" + +domutils@1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +download@^4.0.0, download@^4.1.2: + version "4.4.3" + resolved "https://registry.yarnpkg.com/download/-/download-4.4.3.tgz#aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac" + dependencies: + caw "^1.0.1" + concat-stream "^1.4.7" + each-async "^1.0.0" + filenamify "^1.0.1" + got "^5.0.0" + gulp-decompress "^1.2.0" + gulp-rename "^1.2.0" + is-url "^1.2.0" + object-assign "^4.0.1" + read-all-stream "^3.0.0" + readable-stream "^2.0.2" + stream-combiner2 "^1.1.1" + vinyl "^1.0.0" + vinyl-fs "^2.2.0" + ware "^1.2.0" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +duplexer2@^0.1.4, duplexer2@~0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + dependencies: + readable-stream "^2.0.2" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +duplexify@^3.2.0, duplexify@^3.4.2, duplexify@^3.5.0, duplexify@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +each-async@^1.0.0, each-async@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/each-async/-/each-async-1.1.1.tgz#dee5229bdf0ab6ba2012a395e1b869abf8813473" + dependencies: + onetime "^1.0.0" + set-immediate-shim "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +ejs-loader@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/ejs-loader/-/ejs-loader-0.3.1.tgz#280c8e030bd32428c29826f6bbf6b6d0c14f7ca4" + dependencies: + loader-utils "^0.2.7" + lodash "^3.6.0" + +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47: + version "1.3.48" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz#d3b0d8593814044e092ece2108fc3ac9aea4b900" + +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + +elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" + dependencies: + once "~1.3.0" + +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +entities@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +eol@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/eol/-/eol-0.8.1.tgz#defc3224990c7eca73bb34461a56cf9dc24761d0" + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.45" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "1" + +es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-promise@^4.0.5: + version "4.2.4" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escodegen@^1.6.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.10.0.tgz#f647395de22519fbd0d928ffcf1d17e0dec2603e" + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-prettier@^2.3.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz#5ecd65174d486c22dff389fe036febf502d468a3" + dependencies: + get-stdin "^5.0.1" + +eslint-config-synacor@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-synacor/-/eslint-config-synacor-2.1.0.tgz#8ade304436b79a02ac2b8858b72cf3aefbc5c38c" + dependencies: + babel-eslint "^8.1.2" + eslint-plugin-compat "^2.1.0" + eslint-plugin-mocha "^4.0.0" + eslint-plugin-react "^7.5.1" + +eslint-plugin-compat@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-2.4.0.tgz#827a5c57491929860918fbbc97794ba7309b6990" + dependencies: + babel-runtime "^6.26.0" + browserslist "^3.2.8" + caniuse-db "^1.0.30000846" + mdn-browser-compat-data "^0.0.36" + requireindex "^1.2.0" + +eslint-plugin-mocha@^4.0.0: + version "4.12.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-4.12.1.tgz#dbacc543b178b4536ec5b19d7f8e8864d85404bf" + dependencies: + ramda "^0.25.0" + +eslint-plugin-react@^7.5.1: + version "7.9.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.9.1.tgz#101aadd15e7c7b431ed025303ac7b421a8e3dc15" + dependencies: + doctrine "^2.1.0" + has "^1.0.2" + jsx-ast-utils "^2.0.1" + prop-types "^15.6.1" + +eslint-scope@^3.7.1, eslint-scope@~3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +eslint@^4.9.0: + version "4.19.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" + dependencies: + ajv "^5.3.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.4" + esquery "^1.0.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.0.1" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + regexpp "^1.0.1" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "4.0.2" + text-table "~0.2.0" + +espree@^3.5.4: + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esquery@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +event-stream@^3.3.4, event-stream@~3.3.0: + version "3.3.4" + resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +eventemitter3@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +eventsource@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + dependencies: + original ">=0.0.5" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-series@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/exec-series/-/exec-series-1.0.3.tgz#6d257a9beac482a872c7783bc8615839fc77143a" + dependencies: + async-each-series "^1.1.0" + object-assign "^4.1.0" + +exec-sh@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" + dependencies: + merge "^1.1.3" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +executable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/executable/-/executable-1.1.0.tgz#877980e9112f3391066da37265de7ad8434ab4d9" + dependencies: + meow "^3.1.0" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + dependencies: + homedir-polyfill "^1.0.1" + +expect@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-21.2.1.tgz#003ac2ac7005c3c29e73b38a272d4afadd6d1d7b" + dependencies: + ansi-styles "^3.2.0" + jest-diff "^21.2.1" + jest-get-type "^21.2.0" + jest-matcher-utils "^21.2.1" + jest-message-util "^21.2.1" + jest-regex-util "^21.2.0" + +express@^4.16.2: + version "4.16.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" + dependencies: + accepts "~1.3.5" + array-flatten "1.1.1" + body-parser "1.18.2" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.3" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" + dependencies: + kind-of "^1.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@3.0.1, extend@^3.0.0, extend@^3.0.1, extend@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-text-webpack-plugin@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" + dependencies: + async "^2.4.1" + loader-utils "^1.1.0" + schema-utils "^0.3.0" + webpack-sources "^1.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +fancy-log@^1.1.0, fancy-log@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + time-stamp "^1.0.0" + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fastparse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + +faye-websocket@0.11.1, faye-websocket@~0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + dependencies: + bser "^2.0.0" + +fbjs@^0.8.16: + version "0.8.17" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.18" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + dependencies: + pend "~1.2.0" + +figures@^1.3.5, figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-loader@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34" + dependencies: + loader-utils "^1.0.2" + +file-type@^3.1.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +filename-reserved-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" + +filenamify@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5" + dependencies: + filename-reserved-regex "^1.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.4.0" + unpipe "~1.0.0" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + +find-parent-dir@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +find-versions@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-1.2.1.tgz#cbde9f12e38575a0af1be1b9a2c5d5fd8f186b62" + dependencies: + array-uniq "^1.0.0" + get-stdin "^4.0.1" + meow "^3.5.0" + semver-regex "^1.0.0" + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +firebase@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-5.0.4.tgz#f367c80531c1a8a4ef82b6537b2a6bd92685e226" + dependencies: + "@firebase/app" "0.3.3" + "@firebase/auth" "0.5.3" + "@firebase/database" "0.3.3" + "@firebase/firestore" "0.5.4" + "@firebase/functions" "0.2.4" + "@firebase/messaging" "0.3.4" + "@firebase/polyfill" "0.3.3" + "@firebase/storage" "0.2.3" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flagged-respawn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7" + +flat-cache@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + +flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + +follow-redirects@^1.0.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.0.tgz#234f49cf770b7f35b40e790f636ceba0c3a0ab77" + dependencies: + debug "^3.1.0" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +fork-stream@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/fork-stream/-/fork-stream-0.0.4.tgz#db849fce77f6708a5f8f386ae533a0907b54ae70" + +form-data@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + +fs-mkdirp-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" + dependencies: + graceful-fs "^4.1.11" + through2 "^2.0.3" + +fs-readdir-recursive@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.promised@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fs.promised/-/fs.promised-3.0.0.tgz#ab77379f7c1ad0939e1262a8c2ced93fa6c39d3b" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.1.2, fsevents@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +function-bind@^1.1.0, function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" + dependencies: + globule "~0.1.0" + +generic-names@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-1.0.3.tgz#2d786a121aee508876796939e8e3bff836c20917" + dependencies: + loader-utils "^0.2.16" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-own-enumerable-property-symbols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b" + +get-port@^3.0.0, get-port@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + +get-proxy@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-1.1.0.tgz#894854491bc591b0f147d7ae570f5c678b7256eb" + dependencies: + rc "^1.1.2" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stdin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +gittar@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/gittar/-/gittar-0.1.1.tgz#d6993ea6160a86c8b7f3de722a61f73bc99e14b4" + dependencies: + mkdirp "^0.5.1" + tar "^4.4.1" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.0.0, glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^3.1.5: + version "3.1.18" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" + dependencies: + glob "^4.3.1" + glob2base "^0.0.12" + minimatch "^2.0.1" + ordered-read-streams "^0.1.0" + through2 "^0.6.1" + unique-stream "^1.0.0" + +glob-stream@^5.3.2: + version "5.3.5" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" + dependencies: + extend "^3.0.0" + glob "^5.0.3" + glob-parent "^3.0.0" + micromatch "^2.3.7" + ordered-read-streams "^0.3.0" + through2 "^0.6.0" + to-absolute-glob "^0.1.1" + unique-stream "^2.0.2" + +glob-stream@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + dependencies: + extend "^3.0.0" + glob "^7.1.1" + glob-parent "^3.1.0" + is-negated-glob "^1.0.0" + ordered-read-streams "^1.0.0" + pumpify "^1.3.5" + readable-stream "^2.1.5" + remove-trailing-separator "^1.0.1" + to-absolute-glob "^2.0.0" + unique-stream "^2.0.2" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + +glob-watcher@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" + dependencies: + gaze "^0.5.1" + +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + dependencies: + find-index "^0.1.1" + +glob@^4.3.1: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@^5.0.3: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~3.1.21: + version "3.1.21" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + dependencies: + ini "^1.3.4" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globals@^11.0.1, globals@^11.1.0: + version "11.5.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.5.0.tgz#6bc840de6771173b191f13d3a9c94d441ee92642" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globule@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" + dependencies: + glob "~3.1.21" + lodash "~1.0.1" + minimatch "~0.2.11" + +glogg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" + dependencies: + sparkles "^1.0.0" + +got@^5.0.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" + dependencies: + create-error-class "^3.0.1" + duplexer2 "^0.1.4" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + node-status-codes "^1.0.0" + object-assign "^4.0.1" + parse-json "^2.1.0" + pinkie-promise "^2.0.0" + read-all-stream "^3.0.0" + readable-stream "^2.0.5" + timed-out "^3.0.0" + unzip-response "^1.0.2" + url-parse-lax "^1.0.0" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + +grpc@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/grpc/-/grpc-1.11.3.tgz#46093bb17702b9fc1b099789695e6f47d6487129" + dependencies: + lodash "^4.15.0" + nan "^2.0.0" + node-pre-gyp "^0.10.0" + protobufjs "^5.0.0" + +gulp-clean-css@^3.9.2: + version "3.9.4" + resolved "https://registry.yarnpkg.com/gulp-clean-css/-/gulp-clean-css-3.9.4.tgz#c6d3f8bb7a600fbe661962a72348a330954d343b" + dependencies: + clean-css "4.1.11" + plugin-error "1.0.1" + through2 "2.0.3" + vinyl-sourcemaps-apply "0.2.1" + +gulp-concat@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/gulp-concat/-/gulp-concat-2.6.1.tgz#633d16c95d88504628ad02665663cee5a4793353" + dependencies: + concat-with-sourcemaps "^1.0.0" + through2 "^2.0.0" + vinyl "^2.0.0" + +gulp-decompress@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gulp-decompress/-/gulp-decompress-1.2.0.tgz#8eeb65a5e015f8ed8532cafe28454960626f0dc7" + dependencies: + archive-type "^3.0.0" + decompress "^3.0.0" + gulp-util "^3.0.1" + readable-stream "^2.0.2" + +gulp-if@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/gulp-if/-/gulp-if-2.0.2.tgz#a497b7e7573005041caa2bc8b7dda3c80444d629" + dependencies: + gulp-match "^1.0.3" + ternary-stream "^2.0.1" + through2 "^2.0.1" + +gulp-match@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/gulp-match/-/gulp-match-1.0.3.tgz#91c7c0d7f29becd6606d57d80a7f8776a87aba8e" + dependencies: + minimatch "^3.0.3" + +gulp-rename@^1.2.0, gulp-rename@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.3.0.tgz#2e789d8f563ab0c924eeb62967576f37ff4cb826" + +gulp-sourcemaps@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" + dependencies: + convert-source-map "^1.1.1" + graceful-fs "^4.1.2" + strip-bom "^2.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + +gulp-uglify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gulp-uglify/-/gulp-uglify-3.0.0.tgz#0df0331d72a0d302e3e37e109485dddf33c6d1ca" + dependencies: + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash "^4.13.1" + make-error-cause "^1.1.1" + through2 "^2.0.0" + uglify-js "^3.0.5" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-useref@^3.1.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/gulp-useref/-/gulp-useref-3.1.5.tgz#beb8e009c19f819f604de8d191db128bd244aa70" + dependencies: + event-stream "^3.3.4" + extend "^3.0.1" + glob "^7.1.2" + gulp-concat "^2.6.1" + gulp-if "^2.0.2" + is-relative-url "1.0.0" + plugin-error "^1.0.1" + through2 "^2.0.3" + useref "^1.4.1" + vinyl-fs "^3.0.2" + +gulp-util@^3.0.0, gulp-util@^3.0.1: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp-zip@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/gulp-zip/-/gulp-zip-4.1.0.tgz#dab178bd99afa190923f1eb78abaf0db47817704" + dependencies: + get-stream "^3.0.0" + plugin-error "^0.1.2" + through2 "^2.0.1" + vinyl "^2.1.0" + yazl "^2.1.0" + +gulp@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" + dependencies: + archy "^1.0.0" + chalk "^1.0.0" + deprecated "^0.0.1" + gulp-util "^3.0.0" + interpret "^1.0.0" + liftoff "^2.1.0" + minimist "^1.1.0" + orchestrator "^0.3.0" + pretty-hrtime "^1.0.0" + semver "^4.1.0" + tildify "^1.0.0" + v8flags "^2.0.2" + vinyl-fs "^0.3.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +handle-thing@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + +handlebars@^4.0.3: + version "4.0.11" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +harmony-reflect@^1.4.6: + version "1.6.0" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.0.tgz#9c28a77386ec225f7b5d370f9861ba09c4eea58f" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1, has@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.4.tgz#8b50e1f35d51bd01e5ed9ece4dbe3549ccfa0a3c" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +he@1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +homedir-polyfill@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.6.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-comment-regex@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" + +html-encoding-sniffer@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + +html-minifier@^3.2.3: + version "3.5.16" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.16.tgz#39f5aabaf78bdfc057fe67334226efd7f3851175" + dependencies: + camel-case "3.0.x" + clean-css "4.1.x" + commander "2.15.x" + he "1.1.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.3.x" + +html-webpack-exclude-assets-plugin@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/html-webpack-exclude-assets-plugin/-/html-webpack-exclude-assets-plugin-0.0.5.tgz#41af65003f37ef333f044f49e6ada8a4d3f82959" + +html-webpack-plugin@^2.28.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" + dependencies: + bluebird "^3.4.7" + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + toposort "^1.0.0" + +htmlparser2@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" + dependencies: + domelementtype "1" + domhandler "2.1" + domutils "1.1" + readable-stream "1.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + +http-errors@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.4.0: + version "0.4.13" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" + +http-proxy-middleware@~0.17.4: + version "0.17.4" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" + dependencies: + http-proxy "^1.16.2" + is-glob "^3.1.0" + lodash "^4.17.2" + micromatch "^2.3.11" + +http-proxy@^1.16.2: + version "1.17.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" + dependencies: + eventemitter3 "^3.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + +husky@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" + dependencies: + is-ci "^1.0.10" + normalize-path "^1.0.0" + strip-indent "^2.0.0" + +iconv-lite@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-replace-symbols@^1.0.2, icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + dependencies: + postcss "^6.0.1" + +icss-utils@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-3.0.1.tgz#ee70d3ae8cac38c6be5ed91e851b27eed343ad0f" + dependencies: + postcss "^6.0.2" + +identity-obj-proxy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + dependencies: + harmony-reflect "^1.4.6" + +ieee754@^1.1.4: + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + +if-env@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/if-env/-/if-env-1.0.4.tgz#8b2b6bd308af86a3a19bb273426761085104878b" + dependencies: + npm-run-all "1.4.0" + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + +ignore@^3.3.3, ignore@^3.3.5: + version "3.3.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" + +immutability-helper@^2.1.2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-2.7.0.tgz#4ea9916cc8f45142ec3e3f0fce75fa5d66fa1b38" + dependencies: + invariant "^2.2.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + +import-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +inquirer@^3.0.6, inquirer@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +internal-ip@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" + dependencies: + meow "^3.3.0" + +interpret@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + +invariant@^2.2.0, invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ip-regex@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + +ipaddr.js@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" + +is-absolute-url@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-1.0.0.tgz#2d7ef0fd0bb2a88dac7e92253c6808a0ace24bfb" + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + +is-absolute@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" + dependencies: + is-relative "^0.1.0" + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-bzip2@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-ci@^1.0.10: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" + dependencies: + ci-info "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + +is-gzip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-natural-number@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7" + +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + +is-obj@^1.0.0, is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + dependencies: + symbol-observable "^1.1.0" + +is-odd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" + dependencies: + is-number "^4.0.0" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + +is-relative-url@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-1.0.0.tgz#87a9d35e8a789b49e079b4d7d69d64612e8e0e1f" + dependencies: + is-absolute-url "^1.0.0" + +is-relative@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + dependencies: + is-unc-path "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-tar@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + dependencies: + unc-path-regex "^0.1.2" + +is-url@^1.2.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-valid-glob@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" + +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + +is-zip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isomorphic-fetch@2.2.1, isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isomorphic-unfetch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-2.0.0.tgz#f50140a4c163d7582b5f37f1591968c4f809a645" + dependencies: + node-fetch "^1.7.1" + unfetch "^3.0.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul-api@^1.1.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.1.tgz#4c3b05d18c0016d1022e079b98dc82c40f488954" + dependencies: + async "^2.1.4" + compare-versions "^3.1.0" + fileset "^2.0.2" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-hook "^1.2.0" + istanbul-lib-instrument "^1.10.1" + istanbul-lib-report "^1.1.4" + istanbul-lib-source-maps "^1.2.4" + istanbul-reports "^1.3.0" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" + +istanbul-lib-hook@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz#f614ec45287b2a8fc4f07f5660af787575601805" + dependencies: + append-transform "^1.0.0" + +istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.4.2: + version "1.10.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.2.0" + semver "^5.3.0" + +istanbul-lib-report@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" + dependencies: + istanbul-lib-coverage "^1.2.0" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6" + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.1.2" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-lib-source-maps@^1.2.4: + version "1.2.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz#ffe6be4e7ab86d3603e4290d54990b14506fc9b1" + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.2.0" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" + dependencies: + handlebars "^4.0.3" + +jest-changed-files@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.2.0.tgz#5dbeecad42f5d88b482334902ce1cba6d9798d29" + dependencies: + throat "^4.0.0" + +jest-cli@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.2.1.tgz#9c528b6629d651911138d228bdb033c157ec8c00" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + istanbul-api "^1.1.1" + istanbul-lib-coverage "^1.0.1" + istanbul-lib-instrument "^1.4.2" + istanbul-lib-source-maps "^1.1.0" + jest-changed-files "^21.2.0" + jest-config "^21.2.1" + jest-environment-jsdom "^21.2.1" + jest-haste-map "^21.2.0" + jest-message-util "^21.2.1" + jest-regex-util "^21.2.0" + jest-resolve-dependencies "^21.2.0" + jest-runner "^21.2.1" + jest-runtime "^21.2.1" + jest-snapshot "^21.2.1" + jest-util "^21.2.1" + micromatch "^2.3.11" + node-notifier "^5.0.2" + pify "^3.0.0" + slash "^1.0.0" + string-length "^2.0.0" + strip-ansi "^4.0.0" + which "^1.2.12" + worker-farm "^1.3.1" + yargs "^9.0.0" + +jest-config@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.2.1.tgz#c7586c79ead0bcc1f38c401e55f964f13bf2a480" + dependencies: + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^21.2.1" + jest-environment-node "^21.2.1" + jest-get-type "^21.2.0" + jest-jasmine2 "^21.2.1" + jest-regex-util "^21.2.0" + jest-resolve "^21.2.0" + jest-util "^21.2.1" + jest-validate "^21.2.1" + pretty-format "^21.2.1" + +jest-diff@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.2.1.tgz#46cccb6cab2d02ce98bc314011764bb95b065b4f" + dependencies: + chalk "^2.0.1" + diff "^3.2.0" + jest-get-type "^21.2.0" + pretty-format "^21.2.1" + +jest-docblock@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" + +jest-environment-jsdom@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz#38d9980c8259b2a608ec232deee6289a60d9d5b4" + dependencies: + jest-mock "^21.2.0" + jest-util "^21.2.1" + jsdom "^9.12.0" + +jest-environment-node@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.2.1.tgz#98c67df5663c7fbe20f6e792ac2272c740d3b8c8" + dependencies: + jest-mock "^21.2.0" + jest-util "^21.2.1" + +jest-get-type@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.2.0.tgz#f6376ab9db4b60d81e39f30749c6c466f40d4a23" + +jest-get-type@^22.1.0: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + +jest-haste-map@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.2.0.tgz#1363f0a8bb4338f24f001806571eff7a4b2ff3d8" + dependencies: + fb-watchman "^2.0.0" + graceful-fs "^4.1.11" + jest-docblock "^21.2.0" + micromatch "^2.3.11" + sane "^2.0.0" + worker-farm "^1.3.1" + +jest-jasmine2@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz#9cc6fc108accfa97efebce10c4308548a4ea7592" + dependencies: + chalk "^2.0.1" + expect "^21.2.1" + graceful-fs "^4.1.11" + jest-diff "^21.2.1" + jest-matcher-utils "^21.2.1" + jest-message-util "^21.2.1" + jest-snapshot "^21.2.1" + p-cancelable "^0.3.0" + +jest-matcher-utils@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz#72c826eaba41a093ac2b4565f865eb8475de0f64" + dependencies: + chalk "^2.0.1" + jest-get-type "^21.2.0" + pretty-format "^21.2.1" + +jest-message-util@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.2.1.tgz#bfe5d4692c84c827d1dcf41823795558f0a1acbe" + dependencies: + chalk "^2.0.1" + micromatch "^2.3.11" + slash "^1.0.0" + +jest-mock@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.2.0.tgz#7eb0770e7317968165f61ea2a7281131534b3c0f" + +jest-regex-util@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.2.0.tgz#1b1e33e63143babc3e0f2e6c9b5ba1eb34b2d530" + +jest-resolve-dependencies@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz#9e231e371e1a736a1ad4e4b9a843bc72bfe03d09" + dependencies: + jest-regex-util "^21.2.0" + +jest-resolve@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.2.0.tgz#068913ad2ba6a20218e5fd32471f3874005de3a6" + dependencies: + browser-resolve "^1.11.2" + chalk "^2.0.1" + is-builtin-module "^1.0.0" + +jest-runner@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.2.1.tgz#194732e3e518bfb3d7cbfc0fd5871246c7e1a467" + dependencies: + jest-config "^21.2.1" + jest-docblock "^21.2.0" + jest-haste-map "^21.2.0" + jest-jasmine2 "^21.2.1" + jest-message-util "^21.2.1" + jest-runtime "^21.2.1" + jest-util "^21.2.1" + pify "^3.0.0" + throat "^4.0.0" + worker-farm "^1.3.1" + +jest-runtime@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.2.1.tgz#99dce15309c670442eee2ebe1ff53a3cbdbbb73e" + dependencies: + babel-core "^6.0.0" + babel-jest "^21.2.0" + babel-plugin-istanbul "^4.0.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + graceful-fs "^4.1.11" + jest-config "^21.2.1" + jest-haste-map "^21.2.0" + jest-regex-util "^21.2.0" + jest-resolve "^21.2.0" + jest-util "^21.2.1" + json-stable-stringify "^1.0.1" + micromatch "^2.3.11" + slash "^1.0.0" + strip-bom "3.0.0" + write-file-atomic "^2.1.0" + yargs "^9.0.0" + +jest-snapshot@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.2.1.tgz#29e49f16202416e47343e757e5eff948c07fd7b0" + dependencies: + chalk "^2.0.1" + jest-diff "^21.2.1" + jest-matcher-utils "^21.2.1" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^21.2.1" + +jest-util@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.2.1.tgz#a274b2f726b0897494d694a6c3d6a61ab819bb78" + dependencies: + callsites "^2.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.11" + jest-message-util "^21.2.1" + jest-mock "^21.2.0" + jest-validate "^21.2.1" + mkdirp "^0.5.1" + +jest-validate@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.2.1.tgz#cc0cbca653cd54937ba4f2a111796774530dd3c7" + dependencies: + chalk "^2.0.1" + jest-get-type "^21.2.0" + leven "^2.1.0" + pretty-format "^21.2.1" + +jest-validate@^23.0.0: + version "23.0.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.0.1.tgz#cd9f01a89d26bb885f12a8667715e9c865a5754f" + dependencies: + chalk "^2.0.1" + jest-get-type "^22.1.0" + leven "^2.1.0" + pretty-format "^23.0.1" + +jest@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-21.2.1.tgz#c964e0b47383768a1438e3ccf3c3d470327604e1" + dependencies: + jest-cli "^21.2.1" + +js-base64@^2.1.9: + version "2.4.5" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.5.tgz#e293cd3c7c82f070d700fc7a1ca0a2e69f101f92" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsdom@^9.12.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" + dependencies: + abab "^1.0.3" + acorn "^4.0.4" + acorn-globals "^3.1.0" + array-equal "^1.0.0" + content-type-parser "^1.0.1" + cssom ">= 0.3.2 < 0.4.0" + cssstyle ">= 0.2.37 < 0.3.0" + escodegen "^1.6.1" + html-encoding-sniffer "^1.0.1" + nwmatcher ">= 1.3.9 < 2.0.0" + parse5 "^1.5.1" + request "^2.79.0" + sax "^1.2.1" + symbol-tree "^3.2.1" + tough-cookie "^2.3.2" + webidl-conversions "^4.0.0" + whatwg-encoding "^1.0.1" + whatwg-url "^4.3.0" + xml-name-validator "^2.0.1" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jsx-ast-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" + dependencies: + array-includes "^3.0.3" + +killable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" + +kind-of@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazy-req@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +lead@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" + dependencies: + flush-write-stream "^1.0.2" + +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +liftoff@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" + dependencies: + extend "^3.0.0" + findup-sync "^2.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +lint-staged@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-7.2.0.tgz#bdf4bb7f2f37fe689acfaec9999db288a5b26888" + dependencies: + app-root-path "^2.0.1" + chalk "^2.3.1" + commander "^2.14.1" + cosmiconfig "^5.0.2" + debug "^3.1.0" + dedent "^0.7.0" + execa "^0.9.0" + find-parent-dir "^0.3.0" + is-glob "^4.0.0" + is-windows "^1.0.2" + jest-validate "^23.0.0" + listr "^0.14.1" + lodash "^4.17.5" + log-symbols "^2.2.0" + micromatch "^3.1.8" + npm-which "^3.0.1" + p-map "^1.1.1" + path-is-inside "^1.0.2" + pify "^3.0.0" + please-upgrade-node "^3.0.2" + staged-git-files "1.1.1" + string-argv "^0.0.2" + stringify-object "^3.2.2" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + +listr-update-renderer@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7" + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^1.0.2" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +listr@^0.14.1: + version "0.14.1" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.1.tgz#8a7afa4a7135cee4c921d128e0b7dfc6e522d43d" + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + cli-truncate "^0.2.1" + figures "^1.7.0" + indent-string "^2.1.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.4.0" + listr-verbose-renderer "^0.4.0" + log-symbols "^1.0.2" + log-update "^1.0.2" + ora "^0.2.3" + p-map "^1.1.1" + rxjs "^6.1.0" + strip-ansi "^3.0.1" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^0.2.16, loader-utils@^0.2.7: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isequal@^4.0.0, lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.some@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.template@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + dependencies: + lodash._reinterpolate "~3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash.templatesettings@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + dependencies: + lodash._reinterpolate "~3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +lodash@^3.6.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0: + version "4.17.10" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" + +lodash@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + dependencies: + chalk "^1.0.0" + +log-symbols@^2.1.0, log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + dependencies: + chalk "^2.0.1" + +log-update@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" + dependencies: + ansi-escapes "^1.0.0" + cli-cursor "^1.0.2" + +logalot@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" + dependencies: + figures "^1.3.5" + squeak "^1.0.0" + +loglevel@^1.4.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" + +long@~3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" + +longest@^1.0.0, longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0, loose-envify@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + +lpad-align@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" + dependencies: + get-stdin "^4.0.1" + indent-string "^2.1.0" + longest "^1.0.0" + meow "^3.3.0" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +lru-cache@^4.0.1, lru-cache@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + dependencies: + pify "^3.0.0" + +make-error-cause@^1.1.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/make-error-cause/-/make-error-cause-1.2.2.tgz#df0388fcd0b37816dff0a5fb8108939777dcbc9d" + dependencies: + make-error "^1.2.0" + +make-error@^1.2.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + dependencies: + kind-of "^6.0.2" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + dependencies: + tmpl "1.0.x" + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + +math-expression-evaluator@^1.2.14: + version "1.2.17" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" + +math-random@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +mdn-browser-compat-data@^0.0.36: + version "0.0.36" + resolved "https://registry.yarnpkg.com/mdn-browser-compat-data/-/mdn-browser-compat-data-0.0.36.tgz#d347c618b648981fd0310035e556fd6871fde2fe" + dependencies: + extend "3.0.1" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.1.0, meow@^3.3.0, meow@^3.5.0, meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge-stream@^1.0.0, merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +merge@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.3.11, micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.0.4, micromatch@^3.1.4, micromatch@^3.1.8: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +"mime-db@>= 1.34.0 < 2": + version "1.34.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.34.0.tgz#452d0ecff5c30346a6dc1e64b1eaee0d3719ff9a" + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + dependencies: + mime-db "~1.33.0" + +mime@1.3.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + +mime@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimatch@~0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minipass@^2.2.1, minipass@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + dependencies: + minipass "^2.2.1" + +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^2.0.1" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +nan@^2.0.0, nan@^2.9.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + +nanomatch@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-odd "^2.0.0" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natives@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.4.tgz#2f0f224fc9a7dd53407c7667c84cf8dbe773de58" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +needle@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +neo-async@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" + +next-tick@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + dependencies: + lower-case "^1.1.1" + +node-fetch@^1.0.1, node-fetch@^1.7.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-forge@0.7.5: + version "0.7.5" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + +node-libs-browser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.0" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-notifier@^5.0.2: + version "5.2.1" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" + dependencies: + growly "^1.3.0" + semver "^5.4.1" + shellwords "^0.1.1" + which "^1.3.0" + +node-pre-gyp@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46" + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.0" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.1.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-status-codes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" + +normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + +normalize-url@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +now-and-later@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.0.tgz#bc61cbb456d79cb32207ce47ca05136ff2e7d6ee" + dependencies: + once "^1.3.2" + +npm-bundled@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" + +npm-packlist@^1.1.6: + version "1.1.10" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-path@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" + dependencies: + which "^1.2.10" + +npm-run-all@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-1.4.0.tgz#a469bb9feabe5bf3aa9916833baf6776582e8948" + dependencies: + babel-polyfill "^6.2.0" + minimatch "^3.0.0" + ps-tree "^1.0.1" + shell-quote "^1.4.3" + which "^1.2.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npm-which@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" + dependencies: + commander "^2.9.0" + npm-path "^2.0.2" + which "^1.2.10" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +"nwmatcher@>= 1.3.9 < 2.0.0": + version "1.4.4" + resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" + +oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-keys@^1.0.11, object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + +object.assign@^4.0.1, object.assign@^4.0.4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.entries@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +opn@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" + dependencies: + is-wsl "^1.1.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +optjs@~3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/optjs/-/optjs-3.2.2.tgz#69a6ce89c442a44403141ad2f9b370bd5bb6f4ee" + +ora@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" + dependencies: + chalk "^1.1.1" + cli-cursor "^1.0.2" + cli-spinners "^0.1.2" + object-assign "^4.0.1" + +ora@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5" + dependencies: + chalk "^2.1.0" + cli-cursor "^2.1.0" + cli-spinners "^1.0.1" + log-symbols "^2.1.0" + +orchestrator@^0.3.0: + version "0.3.8" + resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" + dependencies: + end-of-stream "~0.1.5" + sequencify "~0.0.7" + stream-consume "~0.1.0" + +ordered-read-streams@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" + +ordered-read-streams@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" + dependencies: + is-stream "^1.0.1" + readable-stream "^2.0.1" + +ordered-read-streams@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + dependencies: + readable-stream "^2.0.1" + +original@>=0.0.5: + version "1.0.1" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.1.tgz#b0a53ff42ba997a8c9cd1fb5daaeb42b9d693190" + dependencies: + url-parse "~1.4.0" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + +os-filter-obj@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-1.0.3.tgz#5915330d90eced557d2d938a31c6dd214d9c63ad" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.0.0, p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-map@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pako@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + dependencies: + no-case "^2.2.0" + +parse-asn1@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.1.0, parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + +parse5@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" + +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + dependencies: + path-root-regex "^0.1.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-to-regexp@^1.0.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + +pbkdf2@^3.0.3: + version "3.0.16" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +persist-path@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/persist-path/-/persist-path-1.0.2.tgz#b7b9475365b5ccf038aafa55af12b0dd8c418d7a" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +please-upgrade-node@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.0.2.tgz#7b9eaeca35aa4a43d6ebdfd10616c042f9a83acc" + dependencies: + semver-compare "^1.0.0" + +plugin-error@1.0.1, plugin-error@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" + dependencies: + ansi-colors "^1.0.1" + arr-diff "^4.0.0" + arr-union "^3.1.0" + extend-shallow "^3.0.2" + +plugin-error@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" + dependencies: + ansi-cyan "^0.1.1" + ansi-red "^0.1.1" + arr-diff "^1.0.1" + arr-union "^2.0.1" + extend-shallow "^1.1.2" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + +portfinder@^1.0.9: + version "1.0.13" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + +postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-colormin@^2.1.8: + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + dependencies: + postcss "^5.0.14" + +postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + dependencies: + postcss "^5.0.4" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + dependencies: + postcss "^5.0.14" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + dependencies: + postcss "^5.0.16" + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" + dependencies: + postcss "^5.0.4" + +postcss-load-config@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-loader@^2.0.6: + version "2.1.5" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.5.tgz#3c6336ee641c8f95138172533ae461a83595e788" + dependencies: + loader-utils "^1.1.0" + postcss "^6.0.0" + postcss-load-config "^1.2.0" + schema-utils "^0.4.0" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + dependencies: + postcss "^5.0.4" + +postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-modules-extract-imports@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" + dependencies: + postcss "^6.0.1" + +postcss-modules-extract-imports@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.0.1, postcss-modules-local-by-default@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-resolve-imports@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-resolve-imports/-/postcss-modules-resolve-imports-1.3.0.tgz#398d3000b95ae969420cdf4cd83fa8067f1c5eae" + dependencies: + css-selector-tokenizer "^0.7.0" + icss-utils "^3.0.1" + minimist "^1.2.0" + +postcss-modules-scope@^1.0.0, postcss-modules-scope@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.1.1, postcss-modules-values@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + dependencies: + postcss "^5.0.5" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + dependencies: + postcss "^5.0.4" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.17, postcss@^6.0.2: + version "6.0.22" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.22.tgz#e23b78314905c3b90cbd61702121e7a78848f2a3" + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +preact-cli@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/preact-cli/-/preact-cli-2.2.1.tgz#05a3311e89bdb120a5273532c77b87bdd710e04b" + dependencies: + autoprefixer "^7.1.0" + babel-loader "^7.0.0" + babel-plugin-jsx-pragmatic "^1.0.2" + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-class-properties "^6.24.1" + babel-plugin-transform-decorators-legacy "^1.3.4" + babel-plugin-transform-export-extensions "^6.22.0" + babel-plugin-transform-object-assign "^6.22.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + babel-plugin-transform-react-constant-elements "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-remove-prop-types "^0.4.5" + babel-preset-env "^1.3.3" + babel-register "^6.24.1" + bluebird "^3.5.0" + chalk "^2.1.0" + console-clear "^1.0.0" + copy-webpack-plugin "^4.1.0" + cross-spawn-promise "^0.10.1" + css-loader "^0.28.7" + css-modules-require-hook "^4.0.6" + devcert-san "^0.3.3" + ejs-loader "^0.3.0" + extract-text-webpack-plugin "^3.0.0" + file-loader "^0.11.1" + fs.promised "^3.0.0" + get-port "^3.1.0" + gittar "^0.1.0" + glob "^7.1.2" + html-webpack-exclude-assets-plugin "0.0.5" + html-webpack-plugin "^2.28.0" + inquirer "^3.3.0" + ip "^1.1.5" + isomorphic-unfetch "^2.0.0" + json-loader "^0.5.4" + loader-utils "^1.1.0" + log-symbols "^2.1.0" + minimatch "^3.0.3" + ora "^1.2.0" + persist-path "^1.0.1" + postcss-loader "^2.0.6" + preact "^8.1.0" + preact-compat "^3.14.3" + preact-render-to-string "^3.6.0" + preact-router "^2.5.2" + progress-bar-webpack-plugin "^1.9.3" + promise-polyfill "^6.0.2" + raw-loader "^0.5.1" + require-relative "^0.8.7" + rimraf "^2.6.1" + script-ext-html-webpack-plugin "^1.8.0" + simplehttp2server "^2.0.0" + source-map "^0.5.6" + stack-trace "0.0.10" + style-loader "^0.18.2" + sw-precache-webpack-plugin "^0.11.2" + tmp "0.0.31" + unfetch "^3.0.0" + update-notifier "^2.3.0" + url-loader "^0.5.8" + validate-npm-package-name "^3.0.0" + webpack "^3.7.0" + webpack-dev-server "^2.9.0" + webpack-merge "^4.1.0" + webpack-plugin-replace "^1.1.1" + which "^1.2.14" + yargs "^8.0.1" + +preact-compat@^3.14.3, preact-compat@^3.17.0: + version "3.18.0" + resolved "https://registry.yarnpkg.com/preact-compat/-/preact-compat-3.18.0.tgz#ca430cc1f67193fb9feaf7c510832957b2ebe701" + dependencies: + immutability-helper "^2.1.2" + preact-render-to-string "^3.6.0" + preact-transition-group "^1.1.0" + prop-types "^15.5.8" + standalone-react-addons-pure-render-mixin "^0.1.1" + +preact-portal@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/preact-portal/-/preact-portal-1.1.3.tgz#22cdd3ecf6ad9aaa3f830607a9c6591de90aedb7" + +preact-render-spy@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/preact-render-spy/-/preact-render-spy-1.3.0.tgz#f64b83f4de33d9696e69e5b08c4ae5e29decd6d1" + dependencies: + lodash.isequal "^4.5.0" + object.entries "^1.0.4" + preact-render-to-string "^3.6.3" + +preact-render-to-string@^3.6.0, preact-render-to-string@^3.6.3: + version "3.7.0" + resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-3.7.0.tgz#7db4177454bc01395e0d01d6ac07bc5e838e31ee" + dependencies: + pretty-format "^3.5.1" + +preact-router@^2.5.2, preact-router@^2.5.7: + version "2.6.1" + resolved "https://registry.yarnpkg.com/preact-router/-/preact-router-2.6.1.tgz#eec60a9f2c07a1ae4fbc6604d8a0415742fbbd89" + +preact-transition-group@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/preact-transition-group/-/preact-transition-group-1.1.1.tgz#f0a49327ea515ece34ea2be864c4a7d29e5d6e10" + +preact@^8.1.0, preact@^8.2.6: + version "8.2.9" + resolved "https://registry.yarnpkg.com/preact/-/preact-8.2.9.tgz#813ba9dd45e5d97c5ea0d6c86d375b3be711cc40" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.0, prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +prettier@^1.10.2: + version "1.13.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.5.tgz#7ae2076998c8edce79d63834e9b7b09fead6bfd0" + +pretty-bytes@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" + +pretty-error@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-format@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.2.1.tgz#ae5407f3cf21066cd011aa1ba5fce7b6a2eddb36" + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + +pretty-format@^23.0.1: + version "23.0.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.0.1.tgz#d61d065268e4c759083bccbca27a01ad7c7601f4" + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + +pretty-format@^3.5.1: + version "3.8.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385" + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +progress-bar-webpack-plugin@^1.9.3: + version "1.11.0" + resolved "https://registry.yarnpkg.com/progress-bar-webpack-plugin/-/progress-bar-webpack-plugin-1.11.0.tgz#4f801288443c55ec029b20cbfdcbf3e1dc17f852" + dependencies: + chalk "^1.1.1" + object.assign "^4.0.1" + progress "^1.1.8" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +progress@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + +promise-polyfill@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-7.1.2.tgz#ab05301d8c28536301622d69227632269a70ca3b" + +promise-polyfill@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + dependencies: + asap "~2.0.3" + +prop-types@^15.5.8, prop-types@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca" + dependencies: + fbjs "^0.8.16" + loose-envify "^1.3.1" + object-assign "^4.1.1" + +protobufjs@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-5.0.3.tgz#e4dfe9fb67c90b2630d15868249bcc4961467a17" + dependencies: + ascli "~1" + bytebuffer "~5" + glob "^7.0.5" + yargs "^3.10.0" + +proxy-addr@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.6.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +ps-tree@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" + dependencies: + event-stream "~3.3.0" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +psl@^1.1.24: + version "1.1.28" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.28.tgz#4fb6ceb08a1e2214d4fd4de0ca22dae13740bc7b" + +public-encrypt@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +pump@^2.0.0, pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3, pumpify@^1.3.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + +qs@6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +qs@~6.5.1: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +querystringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" + +ramda@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" + +randomatic@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.0.3, range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + +raw-loader@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" + +rc@^1.0.1, rc@^1.1.2, rc@^1.1.6, rc@^1.1.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-all-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" + dependencies: + pinkie-promise "^2.0.0" + readable-stream "^2.0.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + dependencies: + balanced-match "^0.4.2" + +regenerate@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpp@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + +remove-bom-buffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" + dependencies: + is-buffer "^1.1.5" + is-utf8 "^0.2.1" + +remove-bom-stream@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" + dependencies: + remove-bom-buffer "^3.0.0" + safe-buffer "^5.1.0" + through2 "^2.0.3" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +renderkid@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" + dependencies: + css-select "^1.1.0" + dom-converter "~0.1" + htmlparser2 "~3.3.0" + strip-ansi "^3.0.0" + utila "~0.3" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +replace-ext@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + +request@^2.79.0: + version "2.87.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-relative@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requireindex@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + dependencies: + resolve-from "^3.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + +resolve-options@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" + dependencies: + value-or-function "^3.0.0" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.6, resolve@^1.1.7: + version "1.8.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.0.tgz#a7f2ac27b78480ecc09c83782741d9f26e4f0c3e" + dependencies: + path-parse "^1.0.5" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@^2.2.6, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rsvp@^3.3.3: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + dependencies: + aproba "^1.1.1" + +run-sequence@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/run-sequence/-/run-sequence-2.2.1.tgz#1ce643da36fd8c7ea7e1a9329da33fc2b8898495" + dependencies: + chalk "^1.1.3" + fancy-log "^1.3.2" + plugin-error "^0.1.2" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +rxjs@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.1.tgz#246cebec189a6cbc143a3ef9f62d6f4c91813ca1" + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +sane@^2.0.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" + dependencies: + anymatch "^2.0.0" + capture-exit "^1.2.0" + exec-sh "^0.2.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.18.0" + optionalDependencies: + fsevents "^1.2.3" + +sax@^1.2.1, sax@^1.2.4, sax@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +schema-utils@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + dependencies: + ajv "^5.0.0" + +schema-utils@^0.4.0: + version "0.4.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +script-ext-html-webpack-plugin@^1.8.0: + version "1.8.8" + resolved "https://registry.yarnpkg.com/script-ext-html-webpack-plugin/-/script-ext-html-webpack-plugin-1.8.8.tgz#faa888a286ce746fcd06a5e0a9e39ed7b9d24f66" + dependencies: + debug "^3.1.0" + +seek-bzip@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" + dependencies: + commander "~2.8.1" + +seekout@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/seekout/-/seekout-1.0.2.tgz#09ba9f1bd5b46fbb134718eb19a68382cbb1b9c9" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + +selfsigned@^1.9.1: + version "1.10.3" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823" + dependencies: + node-forge "0.7.5" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +semver-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9" + +semver-truncate@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" + dependencies: + semver "^5.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +semver@^4.0.3, semver@^4.1.0: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + +sequencify@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" + +serialize-javascript@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" + +serve-index@^1.7.2: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + +serviceworker-cache-polyfill@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.0, set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +shell-quote@^1.4.3: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +simplehttp2server@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/simplehttp2server/-/simplehttp2server-2.0.0.tgz#f7f6421d67b40c58cde88c438ff264b2593f9217" + dependencies: + bin-build "^2.2.0" + bin-wrapper "^3.0.2" + logalot "^2.1.0" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + dependencies: + is-fullwidth-code-point "^2.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" + dependencies: + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +sparkles@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" + +spdx-correct@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" + +spdy-transport@^2.0.18: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + +split.js@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/split.js/-/split.js-1.3.4.tgz#eb78e20690429684236756304aa925fcb8ec000a" + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +squeak@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" + dependencies: + chalk "^1.0.0" + console-stream "^0.1.1" + lpad-align "^1.0.1" + +sshpk@^1.7.0: + version "1.14.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + safer-buffer "^2.0.2" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + dependencies: + safe-buffer "^5.1.1" + +stack-trace@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + +staged-git-files@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.1.tgz#37c2218ef0d6d26178b1310719309a16a59f8f7b" + +standalone-react-addons-pure-render-mixin@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz#3c7409f4c79c40de9ac72c616cf679a994f37551" + +stat-mode@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + +stream-consume@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" + +stream-each@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + +string-argv@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.0.0, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringify-object@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd" + dependencies: + get-own-enumerable-property-symbols "^2.0.1" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" + dependencies: + first-chunk-stream "^1.0.0" + strip-bom "^2.0.0" + +strip-bom@3.0.0, strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-bom@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-dirs@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-1.1.1.tgz#960bbd1287844f3975a4558aa103a8255e2456a0" + dependencies: + chalk "^1.0.0" + get-stdin "^4.0.1" + is-absolute "^0.1.5" + is-natural-number "^2.0.0" + minimist "^1.1.0" + sum-up "^1.0.1" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +strip-outer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + dependencies: + escape-string-regexp "^1.0.2" + +style-loader@^0.18.2: + version "0.18.2" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.18.2.tgz#cc31459afbcd6d80b7220ee54b291a9fd66ff5eb" + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.3.0" + +sum-up@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" + dependencies: + chalk "^1.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.2, supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + dependencies: + has-flag "^2.0.0" + +supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + dependencies: + has-flag "^3.0.0" + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +sw-precache-webpack-plugin@^0.11.2: + version "0.11.5" + resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.5.tgz#9b53f65a4966e3adc298e256b3cef7a55c73fdfd" + dependencies: + del "^3.0.0" + sw-precache "^5.2.1" + uglify-es "^3.3.9" + +sw-precache@^5.2.0, sw-precache@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.1.tgz#06134f319eec68f3b9583ce9a7036b1c119f7179" + dependencies: + dom-urls "^1.1.0" + es6-promise "^4.0.5" + glob "^7.1.1" + lodash.defaults "^4.2.0" + lodash.template "^4.4.0" + meow "^3.7.0" + mkdirp "^0.5.1" + pretty-bytes "^4.0.2" + sw-toolbox "^3.4.0" + update-notifier "^2.3.0" + +sw-toolbox@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5" + dependencies: + path-to-regexp "^1.0.1" + serviceworker-cache-polyfill "^4.0.0" + +symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + +symbol-tree@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" + +table@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + dependencies: + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + +tar-stream@^1.1.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395" + dependencies: + bl "^1.0.0" + buffer-alloc "^1.1.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.0" + xtend "^4.0.0" + +tar@^4, tar@^4.4.1: + version "4.4.4" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" + dependencies: + chownr "^1.0.1" + fs-minipass "^1.2.5" + minipass "^2.3.3" + minizlib "^1.1.0" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + +tempfile@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" + dependencies: + os-tmpdir "^1.0.0" + uuid "^2.0.1" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + +ternary-stream@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ternary-stream/-/ternary-stream-2.0.1.tgz#064e489b4b5bf60ba6a6b7bc7f2f5c274ecf8269" + dependencies: + duplexify "^3.5.0" + fork-stream "^0.0.4" + merge-stream "^1.0.0" + through2 "^2.0.1" + +test-exclude@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" + dependencies: + arrify "^1.0.1" + micromatch "^3.1.8" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + +through2-filter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@2.0.3, through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through2@^0.6.0, through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through@2, through@^2.3.6, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +thunky@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" + +tildify@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" + dependencies: + os-homedir "^1.0.0" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + +time-stamp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" + +timed-out@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +timers-browserify@^2.0.4: + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + dependencies: + setimmediate "^1.0.4" + +tmp@0.0.31, tmp@^0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + dependencies: + os-tmpdir "~1.0.1" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + +to-absolute-glob@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" + dependencies: + extend-shallow "^2.0.1" + +to-absolute-glob@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-buffer@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +to-through@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" + dependencies: + through2 "^2.0.3" + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + +tough-cookie@^2.3.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.2.tgz#aa9133154518b494efab98a58247bfc38818c00c" + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tough-cookie@~2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + dependencies: + punycode "^1.4.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + dependencies: + escape-string-regexp "^1.0.2" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tslib@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" + +tslib@^1.6.0, tslib@^1.9.0: + version "1.9.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.2.tgz#8be0cc9a1f6dc7727c38deb16c2ebd1a2892988e" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-is@~1.6.15, type-is@~1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.18" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +ua-parser-js@^0.7.18: + version "0.7.18" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed" + +uglify-es@^3.3.9: + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" + dependencies: + commander "~2.13.0" + source-map "~0.6.1" + +uglify-js@3.3.x: + version "3.3.28" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.28.tgz#0efb9a13850e11303361c1051f64d2ec68d9be06" + dependencies: + commander "~2.15.0" + source-map "~0.6.1" + +uglify-js@^2.6, uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@^3.0.5: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.0.tgz#796762282b5b5f0eafe7d5c8c708d1d7bd5ba11d" + dependencies: + commander "~2.15.0" + source-map "~0.6.1" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + +unfetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-3.0.0.tgz#8d1e0513a4ecd0e5ff2d41a6ba77771aae8b6482" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + +unique-filename@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" + dependencies: + imurmurhash "^0.1.4" + +unique-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" + +unique-stream@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" + dependencies: + json-stable-stringify "^1.0.0" + through2-filter "^2.0.0" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +upath@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + +update-notifier@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + +uri-js@^4.2.1: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + dependencies: + punycode "^2.1.0" + +urijs@^1.16.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url-loader@^0.5.8: + version "0.5.9" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295" + dependencies: + loader-utils "^1.0.2" + mime "1.3.x" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-parse@^1.1.8, url-parse@~1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.1.tgz#4dec9dad3dc8585f862fed461d2e19bbf623df30" + dependencies: + querystringify "^2.0.0" + requires-port "^1.0.0" + +url-regex@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724" + dependencies: + ip-regex "^1.0.1" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" + dependencies: + kind-of "^6.0.2" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +useref@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/useref/-/useref-1.4.1.tgz#02dabad10b1a85025d964252fca31b805931ad7d" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + dependencies: + inherits "2.0.3" + +utila@~0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + +uuid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.1, uuid@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + +v8flags@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +vali-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" + +validate-npm-package-license@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + dependencies: + builtins "^1.0.3" + +value-or-function@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + +vendors@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-assign@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/vinyl-assign/-/vinyl-assign-1.2.1.tgz#4d198891b5515911d771a8cd9c5480a46a074a45" + dependencies: + object-assign "^4.0.1" + readable-stream "^2.0.0" + +vinyl-fs@^0.3.0: + version "0.3.14" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" + dependencies: + defaults "^1.0.0" + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^3.0.0" + mkdirp "^0.5.0" + strip-bom "^1.0.0" + through2 "^0.6.1" + vinyl "^0.4.0" + +vinyl-fs@^2.2.0: + version "2.4.4" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" + dependencies: + duplexify "^3.2.0" + glob-stream "^5.3.2" + graceful-fs "^4.0.0" + gulp-sourcemaps "1.6.0" + is-valid-glob "^0.3.0" + lazystream "^1.0.0" + lodash.isequal "^4.0.0" + merge-stream "^1.0.0" + mkdirp "^0.5.0" + object-assign "^4.0.0" + readable-stream "^2.0.4" + strip-bom "^2.0.0" + strip-bom-stream "^1.0.0" + through2 "^2.0.0" + through2-filter "^2.0.0" + vali-date "^1.0.0" + vinyl "^1.0.0" + +vinyl-fs@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" + dependencies: + fs-mkdirp-stream "^1.0.0" + glob-stream "^6.1.0" + graceful-fs "^4.0.0" + is-valid-glob "^1.0.0" + lazystream "^1.0.0" + lead "^1.0.0" + object.assign "^4.0.4" + pumpify "^1.3.5" + readable-stream "^2.3.3" + remove-bom-buffer "^3.0.0" + remove-bom-stream "^1.2.0" + resolve-options "^1.1.0" + through2 "^2.0.0" + to-through "^2.0.0" + value-or-function "^3.0.0" + vinyl "^2.0.0" + vinyl-sourcemap "^1.1.0" + +vinyl-sourcemap@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" + dependencies: + append-buffer "^1.0.2" + convert-source-map "^1.5.0" + graceful-fs "^4.1.6" + normalize-path "^2.1.1" + now-and-later "^2.0.0" + remove-bom-buffer "^3.0.0" + vinyl "^2.0.0" + +vinyl-sourcemaps-apply@0.2.1, vinyl-sourcemaps-apply@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + dependencies: + source-map "^0.5.1" + +vinyl@^0.4.0, vinyl@^0.4.3: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^2.0.0, vinyl@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + dependencies: + makeerror "1.0.x" + +ware@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4" + dependencies: + wrap-fn "^0.1.0" + +watch@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" + +watchpack@^1.4.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + dependencies: + minimalistic-assert "^1.0.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + +webidl-conversions@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + +webpack-dev-middleware@1.12.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" + dependencies: + memory-fs "~0.4.1" + mime "^1.5.0" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + time-stamp "^2.0.0" + +webpack-dev-server@^2.9.0: + version "2.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz#1f4f4c78bf1895378f376815910812daf79a216f" + dependencies: + ansi-html "0.0.7" + array-includes "^3.0.3" + bonjour "^3.5.0" + chokidar "^2.0.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + debug "^3.1.0" + del "^3.0.0" + express "^4.16.2" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + import-local "^1.0.0" + internal-ip "1.2.0" + ip "^1.1.5" + killable "^1.0.0" + loglevel "^1.4.1" + opn "^5.1.0" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.7.2" + sockjs "0.3.19" + sockjs-client "1.1.4" + spdy "^3.4.1" + strip-ansi "^3.0.0" + supports-color "^5.1.0" + webpack-dev-middleware "1.12.2" + yargs "6.6.0" + +webpack-merge@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.3.tgz#8aaff2108a19c29849bc9ad2a7fd7fce68e87c4a" + dependencies: + lodash "^4.17.5" + +webpack-plugin-replace@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/webpack-plugin-replace/-/webpack-plugin-replace-1.1.1.tgz#9816647fefc98a7d1700f93f2b4b6f481cf20161" + +webpack-sources@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^3.7.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +websocket-driver@>=0.5.1: + version "0.7.0" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + dependencies: + http-parser-js ">=0.4.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + +whatwg-encoding@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3" + dependencies: + iconv-lite "0.4.19" + +whatwg-fetch@2.0.4, whatwg-fetch@>=0.10.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" + +whatwg-url@^4.3.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0" + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.0, which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" + dependencies: + string-width "^2.1.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +window-size@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +worker-farm@^1.3.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-fn@^0.1.0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845" + dependencies: + co "3.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^2.0.0, write-file-atomic@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +xml-name-validator@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" + +xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.0, y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + +yargs-parser@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs@6.6.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + +yargs@^3.10.0: + version "3.32.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" + dependencies: + camelcase "^2.0.1" + cliui "^3.0.3" + decamelize "^1.1.1" + os-locale "^1.4.0" + string-width "^1.0.1" + window-size "^0.1.4" + y18n "^3.2.0" + +yargs@^8.0.1, yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yauzl@^2.2.1: + version "2.9.2" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.2.tgz#4fb1bc7ae1fc2f57037b54af6acc8fe1031c5b77" + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yazl@^2.1.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.4.3.tgz#ec26e5cc87d5601b9df8432dbdd3cd2e5173a071" + dependencies: + buffer-crc32 "~0.2.3"